在MASM中导入DLL变量

时间:2016-03-09 18:22:29

标签: c++ dllimport masm

我试图访问另一个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'
        };
    });

}));

0 个答案:

没有答案