我有一个小dll,我想用D语言.我假设它已用C语言编写.这些是我可以访问的文件,它们与我的程序存在于同一目录中:
这是我试图让D使用这个DLL.
test.d
pragma(lib, "blitz3dsdk.lib");
int main(string[] Args)
{
bbBeginBlitz3D();
bbEndBlitz3D();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编译: dmd test.d -w -wi -debug
结果: Error 43: Not a Valid Library File.
Blitz3DSDK.d
module Blitz3DSDK;
// __declspec(dllimport) int bbBeginBlitz3D() - from the header file.
export extern (Windows) int bbBeginBlitz3D();
// __declspec(dllimport) void bbEndBlitz3D() - from the header file.
export extern (Windows) void bbEndBlitz3D();
Run Code Online (Sandbox Code Playgroud)
test.d
import Blitz3DSDK;
int main(string[] Args)
{
bbBeginBlitz3D();
bbEndBlitz3D();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编译: dmd test.d -w -wi -debug
结果: Error 42: Symbol Undefined _bbBeginBlitz3D@0 Error 42: Symbol Undefined _bbEndBlitz3D@0
任何想法如何使用此DLL或任何有用的最新在线指南将不胜感激.自从我摆弄本机代码和共享库等以来已经有一段时间了.
库文件可能是COFF格式.使用coffimplib将其转换为与D的连接器将OMF库使用,或implib以创建DLL导入库.
export 从DLL导出函数时使用,而不是导入它们.
| 归档时间: |
|
| 查看次数: |
940 次 |
| 最近记录: |