用d7编写dll用vb去调用,在vb中调试运行都正常但是make成exe文件后,运行exe后,发现显示的结果与在vb开发环境中运行结果不一样请问怎么回事谢谢

解决方案 »

  1.   

    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后,选择不同状态时,结果一样,与状态没有关系