我试图访问另一个DLL中导出的MASM中的变量。但每当我尝试使用它时,最终会生成一个__imp_xxx
存根(以减少动态重定位的数量),这对数据来说是错误的。相反,我希望它直接指向重定位(即__imp_xxx
变量)。当我在C / C ++中做同样的事情时,它指向正确的变量。我也试过手动使用EXTERN _qwglChoosePixelFormat:DWORD
...
mov eax, _qwglChoosePixelFormat
...
变量,但是我得到链接错误(未解析的外部符号)。
例如,在MASM中:
_qwglChoosePixelFormat
Visual Studio生成/链接...
_qwglChoosePixelFormat PROC
jmp __imp_qwglChoosePixelFormat
_qwglChoosePixelFormat ENDP
...
作为跳转存根:
extern "C" DWORD __declspec(dllimport) qwglChoosePixelFormat;
...
DWORD test = qwglChoosePixelFormat;
...
但是当我在C / C ++中尝试相同的时候:
...
mov eax, __imp_qwglChoosePixelFormat
mov [ebp+8], eax
...
它会生成正确的代码:
beforeEach(angular.mock.module(function ($provide) {
$provide.provider('$stateParams', function () {
return {
myStateParam: true,
myOtherStateParam: 'some text'
};
});
}));