我正在编写一个程序,用于将图像转换并比较C和汇编处理数据的速度。 我有三个项目:
- C语言中的主要项目
- C语言中用于转换图像的DLL
- 汇编语言中用于转换图像的DLL
在C DLL头文件中,我只是简单地写了:
#ifdef PROJEKTC_EXPORTS
#define PROJEKTC_API __declspec(dllexport)
#else
#define PROJEKTC_API __declspec(dllimport)
#endif
...
extern PROJEKTC_API unsigned int ThreadID;
PROJEKTC_API void __cdecl funkcjaC(void* Args);
在包含这个头文件后,我可以在主项目和C DLL中访问变量ThreadID。但是,在ASM中尝试执行相同操作时会出现问题。我试过在 .code 块中使用类似于“extern ASMThreadID:dword”这样的语法结构,但它不起作用。我得到的错误信息是“error LNK2019: unresolved external symbol _ASMThreadID referenced in function _MyProc1”。我感觉只需要修改一两行代码就可以解决问题,但我无法确定应该使用哪些指令。我通过在ASM中的模块定义文件中链接项目,并将ASM.lib文件添加到主项目的链接器->输入中来连接这些项目。你有什么建议吗?