У меня есть небольшая библиотека, которую я хочу использовать с языком D .Я предполагаю, что это было написано на C. Это файлы, к которым у меня есть доступ, и они находятся в том же каталоге, что и моя программа .:
- b3d.dll
- blitz3dsdk.exp
- blitz3dsdk.lib
- blitz3dsdk.h
Вот что я пытался заставить D использовать эту dll.
test.d
pragma(lib, "blitz3dsdk.lib");
int main(string[] Args)
{
bbBeginBlitz3D();
bbEndBlitz3D();
return 0;
}
Компиляция: 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();
test.d
import Blitz3DSDK;
int main(string[] Args)
{
bbBeginBlitz3D();
bbEndBlitz3D();
return 0;
}
Компиляция: dmd test.d -w -wi -debug
Результат: Error 42: Symbol Undefined _bbBeginBlitz3D@0
Error 42: Symbol Undefined _bbEndBlitz3D@0
Любые идеи, как использовать эту DLL или любуюПолезные обновленные онлайн руководства будут оценены.Прошло много времени с тех пор, как я возился с собственным кодом, общими библиотеками и т. Д.