老天,怎么一眨眼就跌入深谷了呀?.....是很有关dll很初级的问题呀,请高手们不吝赐教

解决方案 »

  1.   

    function PlusNum(X,Y:Integer):Integer;stdcall;external 'DLL1\Project1.dll';
      

  2.   

    VC的调用方式是 Cdel 不是Pascal的 Standard方式
    function GetDiskID:longint;External 'GetDiskID.dll' Name 'GetDiskID'; cdel;
      

  3.   

    编译通过
    但结果还是显示的是 0 
    是不是数据类型的问题
    unlong是不是在delphi里可以用longint?
    如果我要把longint换成十六进制显示怎么办呢?
      

  4.   

    to:zyj320621(小朱) 
    不好意思,它说"[Error] tdfrm.pas(23): Unknown directive: 'cdel'"
    是不是要在uses里面加点什么?
      

  5.   

    应是cdecl
    cdecl 是一个C++调用方式的声明
      

  6.   

    zyj320621(小朱) 
    通过,但显示仍为 0 请帮忙看一下程序有没有错?谢谢
      

  7.   

    cdecl 应在interface中 我的QQ 105551177 如何联系 除e-mail外
      

  8.   

    zyj320621(小朱) :
    cdecl 应在interface中 是什么意思呀?不好意思,delphi懂得不是很多,请多多指教.....谢谢
              
    我几乎不上QQ呀,上班也不行呀,除e-mail外,只能在这里联系了。
      

  9.   

    unit unit1interfacefunction GetDiskID:longint;cdecl;implementationfunction GetDiskID:longint;External 'GetDiskID.dll'  name 'GetDiskID';
      

  10.   

    为什么
    interface
    function GetDiskID:longint; cdecl ;uses
    通不过?
    指到uses,好像cdecl后面还要写点啥?
      

  11.   

    做dll的时候,函数定义使用:stdcall,调用时候使用stdcall,就可以了
      

  12.   

    无法看到a因为调试一看到 GetDiskID 就会往上跳,等它跳下来的时候已经是end了.....哎
      

  13.   

    你在label1.Caption :=inttostr(GetDiskID);处设置断点,然后运行,在run-->add watch中加入变量a,看看a是什么值?