本人从事运动控制软件的二次开发,也就是使用其他厂商的控制板卡,开发适合自己需要的软件,现在的问题是,板卡附带的开发包只提供了支持“VB”和“VC”的动态链接库,但我现在想用DELPHI来开发,怎么办?有解决办法吗?

解决方案 »

  1.   

    一般是將
    “VC”的动态链接库
    轉成pascal 格式, 引用到delphi中!如果有 Vc的 obj, 也可考慮直接鏈接進來!
      

  2.   

    同意楼上的!VC编译的DLL,可以直接在DELPHI中调用,如果是使用频度高的DLL,一般使用静态加载,否则,可以考虑使用动态加载。
    静态加载:
    implementationfunction Max(X,Y:Integer):Integer;stdcall;external 'xxx.dll';然后就可以直接使用DLL中的Max函数了
      

  3.   

    如果是动态加载,则要用到LoadLibrary;GetProcAddress和FreeLibrary三个API函数了,具体可参照WINDOWS SDK
      

  4.   

    重申:这是一个“供VC调用的dll”,不一定是用vc写的,我也不知道是用什么制作的dll。没有obj文件,只有一个*.dll,一个*.lib,一个*.h文件,就这三个文件,还有一个DLL内函数的使用说明(文本),没有源码,。有这三个文件在VC下开发是很方便的,我已经试过了,很容易。可怎么使用Delphi来调用它呢?引:
    一般是將
    “VC”的动态链接库
    轉成pascal 格式怎样转换?我按照显示调用的方式试了一下,发现函数调用的返回值很有问题!!!
      

  5.   

    那可能是参数传递顺序有问题,那你在调用时试试register,cdecl或safecall这几个关键字吧。
      

  6.   

    >>没有obj文件,只有一个*.dll,一个*.lib,一个*.h文件,就这三个文件
    有.h的文件, 一般就可以了!我做了好多的, 都是根據對方提供的.h頭文件來轉換成pas文件
      

  7.   

    函数名; cdecl; external '动态库名';
    试试这个