vc里的dll函数代码://其他代码略int myfunction(int externPara);
{
     otherfunction(hwnd,externPara);//externPara:我手动在这里指定0x01时 
                                    //delphi调用没有问题。
     ... 
     ...}delphi 调用:   ln_ret:=myfunction($01);

解决方案 »

  1.   

    请注意看
        otherfunction(hwnd,externPara);//externPara:我手动在这里指定0x01时 
                                        //delphi调用没有问题。
        也就是换成 otherfunction(hwnd,0x01);时vc的exe 也没有问题,编译为dll,delphi调用也能正确返回值,但一改为变量就有问题了。
      

  2.   

    如你這麼說, 那檢查
    otherfunction 中externPara的數據類型, 是byte?int?or ..?還有一個, 檢查你在delphi中聲明dll 的格式是否有問題???
      

  3.   

    externPara的类型要和delphi的匹配,也就是说要存储空间一样大,数据存放规则也要一样。
    如果externPara占四个字节的空间,你就可以用delphi的integer,然后赋值$7F之类的。
    如果externPara占一个字节,你可以定义变量为byte然后把赋值 。
      

  4.   

    我已经 贴出来了,呵,是 int 类型啊?!delphi 声明:
        function myfunction(npoter:integer):Integer; stdcall;
        external 'Mydll.dll' name '?myfunction@@YAHK@Z';