我的DLL无法看到函数

时间:2017-06-26 15:39:48

标签: c++ dllexport

我正在使用Visual Studio 2015.创建C ++ Win32项目。

我定义了这样的函数:

extern "C" __declspec(dllexport) int  __stdcall function1(par1,par2,..)

DLL编译成功。为什么我在DLL导出查看器和类似工具(dumpbin等)中看不到该功能。我还应该添加什么?

感谢。

2 个答案:

答案 0 :(得分:0)

将代码放入空白的Win32 DLL项目中确实会在DLL中生成导出的函数。

#include <Windows.h>

extern "C" __declspec(dllexport) int  __stdcall function1(int p)
{
    return p;
}

所以我不确定你在“正常”之外做了什么

答案 1 :(得分:0)

我找到了一个解决方案,即我的错。在同一个cpp中有一个代码:

$cleanigQuery->union($oneBarQuery, true);

    $query = (new \yii\db\Query())
        ->select('*')
        ->from(['u' => $cleanigQuery])
        ->orderBy('no_surat');

    $dataProvider = new ActiveDataProvider([
        'query' => $query,

    ]);

与dllmain.cpp相同。这就是为什么包括&#34; stdafx.h&#34;在上面的代码之前调用多个定义的错误。一旦我删除了上面的代码,我就把include&#34; stdafx.h&#34;在文件的顶部,编译并且我的功能变得可见&#34;。