dll中的源代码:library Project1; uses SysUtils, Classes; {$R *.res}var a,b:integer; procedure chushihua; var f:textfile; begin assignfile(f,'c:\test.txt'); //test.txt中有两个数: 1 2 readln(f,a,b); closefile(f); end;function test(x,zhuangtai:integer):integer:stdcall; begin chushihua; if zhuangtai=1 then result:=a+x else result:=b+x; end;exports test; beginend.vb中的代码如下:private Declare Function test Lib "c:\project1.dll"(ByVal X AS Integer) AS Integer private Declare Function test1 Lib "c:\project1.dll"(ByVal X AS Integer) AS Integer public zhuangtai as integer vb窗体上有个text1控件和两个radiobutton,对应状态1和状态2,一个button Private Sub CommandButton1_Click() x = text1.text msgbox test(x,zhuangtai); End SubPrivate Sub OptionButton1_Click() zhuangtai=1 End SubPrivate Sub OptionButton2_Click() zhuangtai=2 End Sub在vb开发环境中运行正常,选择不同状态时,运行结果正确,当make成.exe后,选择不同状态时,结果一样,与状态没有关系
uses
SysUtils,
Classes;
{$R *.res}var a,b:integer; procedure chushihua;
var f:textfile;
begin
assignfile(f,'c:\test.txt'); //test.txt中有两个数: 1 2
readln(f,a,b);
closefile(f);
end;function test(x,zhuangtai:integer):integer:stdcall;
begin
chushihua;
if zhuangtai=1 then
result:=a+x
else
result:=b+x;
end;exports
test;
beginend.vb中的代码如下:private Declare Function test Lib "c:\project1.dll"(ByVal X AS Integer) AS Integer
private Declare Function test1 Lib "c:\project1.dll"(ByVal X AS Integer) AS Integer
public zhuangtai as integer
vb窗体上有个text1控件和两个radiobutton,对应状态1和状态2,一个button
Private Sub CommandButton1_Click()
x = text1.text
msgbox test(x,zhuangtai);
End SubPrivate Sub OptionButton1_Click()
zhuangtai=1
End SubPrivate Sub OptionButton2_Click()
zhuangtai=2
End Sub在vb开发环境中运行正常,选择不同状态时,运行结果正确,当make成.exe后,选择不同状态时,结果一样,与状态没有关系