C++ 函数在我的DLL中不可见

C++ 函数在我的DLL中不可见,c++,dllexport,C++,Dllexport,我正在使用Visual Studio 2015。创建C++ Win32项目.< /P> 我这样定义我的函数: extern "C" __declspec(dllexport) int __stdcall function1(par1,par2,..) DLL编译成功。为什么我在DLL导出查看器和类似工具(dumpbin等)中看不到该函数。我还应该补充什么 谢谢。将代码放入一个空白的Win32 DLL项目中确实会在DLL中生成一个导出函数 #include <Windows.h>

我正在使用Visual Studio 2015。创建C++ Win32项目.< /P> 我这样定义我的函数:

extern "C" __declspec(dllexport) int  __stdcall function1(par1,par2,..)
DLL编译成功。为什么我在DLL导出查看器和类似工具(dumpbin等)中看不到该函数。我还应该补充什么


谢谢。

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

#include <Windows.h>

extern "C" __declspec(dllexport) int  __stdcall function1(int p)
{
    return p;
}
#包括
外部“C”\u declspec(dllexport)int\u stdcall函数1(int p)
{
返回p;
}

因此,我不确定你在“正常”之外做了什么。

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

    BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
    //----
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    //----
    return(TRUE);
}

与dllmain.cpp中的相同。这就是为什么在上述代码之前包含“stdafx.h”称为多定义错误的原因。删除上面的代码后,我将include“stdafx.h”放在文件的顶部,编译后,我的函数变得“可见”。

欢迎使用堆栈溢出。请花时间阅读并参考您可以在此处询问的内容和方式中的资料。这可能是因为#include“stdafx.h”不是在这些函数之前添加的,而是在代码中添加的?