[英]MASM: Accessing to global C variable from assembly
我正在編寫一個程序來轉換圖像,並比較用C和匯編語言處理數據的速度。 我有3個項目:
在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中執行相同操作時,問題就開始了。 我嘗試在extern ASMThreadID:dword
塊中使用extern ASMThreadID:dword
類的構造,但無法正常工作。
我收到的錯誤: error LNK2019: unresolved external symbol _ASMThreadID referenced in function _MyProc1
我感覺這是1-2行代碼的問題,但是我不知道應該使用哪條指令。
我通過ASM中的模塊定義文件鏈接項目,並將ASM.lib文件添加到主項目的Linker-> Input中。
你有什么建議嗎?
在asmcommunity.net上舊帖子的少量幫助下,我設法使其正常運行:
EXTERNDEF C ASMThreadID:DWORD
ASMThreadID dd 0
LIBRARY "nameOfProject" EXPORTS ... ASMThreadID
extern __declspec(dllimport) unsigned int ASMThreadID;
現在,它就像一種魅力。
“公開”聲明使我找到了正確的搜索方式。 謝謝你的幫助,隊友!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.