小编Tri*_*ack的帖子

MASM:从程序集中访问全局 C 变量

我正在编写一个程序来转换图像并比较 C 语言和汇编语言处理数据的速度。我有3个项目:

  • C语言的主要项目
  • C 中的 DLL 来转换图像
  • ASM中的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); 
Run Code Online (Sandbox Code Playgroud)

包含此标头后,我可以在主项目和 C DLL 中访问变量 ThreadID。

当我尝试在 ASM 中执行相同操作时,问题就出现了。我尝试了extern ASMThreadID:dword.code 块中的构造,但它不起作用。

我得到的错误:error LNK2019: unresolved external symbol _ASMThreadID referenced in function _MyProc1

我感觉这只是 1-2 行代码的问题,但我不知道应该使用哪条指令。

我通过 ASM 中的模块定义文件链接项目,并将 ASM.lib 文件添加到主项目的 Linker->Input 中。

你有什么建议吗?

c dll assembly global-variables masm

5
推荐指数
1
解决办法
4232
查看次数

标签 统计

assembly ×1

c ×1

dll ×1

global-variables ×1

masm ×1