C++和汇编混合编程时,如何在汇编程序中访问C++的全局变量?
C++程序 main.cpp
DWORD g_Ori; //<= 定义全局变量
extern "C" void AccessIO(); // <= 此函数在汇编模块中实现
BOOL OpenDB()
{
...
g_Ori = xxx; //<= 对全局变量赋值
...
AccessIO(); //<= 调用汇编模块
...
}
汇编程序 myAsm.asm
.386
.model flat
extern g_Ori : DWORD ;引入my.cpp中定义的全局变量
.code
public _AccessIO ; 输出函数AccessIO
_AccessIO proc
...
mov eax, g_Ori ; //访问my.cpp中定义的全局变量
...
_AccessIO end
END
编译myAsm.asm用ml.exe,命令行如下:
ml /coff /c /Cx myAsm.asm
编译main.cpp用VC++6.0
以上都没有问题,但在VC++中连接myAsm.obj,main.obj时出现以下错误:
"myAsm.obj : error LNK2001: unresolved external symbol g_Ori"
请问如何解决这个错误, 谢谢