如标题所示,我无法创建简单的DLL。我正在使用VS 2017 Community Edition版本15.8.0。这是.dll代码:
#include "stdafx.h"
#include "InvWin32App.h"
#include "$StdHdr.h"
void Prc1()
{
printf("ran procedure 1\n");
}
这是按照MS处理方式的 header 代码:
#ifdef INVWIN32APP_EXPORTS
#define INVWIN32APP_API __declspec(dllexport)
#else
#define INVWIN32APP_API __declspec(dllimport)
#endif
#ifdef __cplusplus
extern "C" {
#endif
INVWIN32APP_API void Prc1();
#ifdef __cplusplus
}
#endif
这是驱动程序代码:(更新:驱动程序是一个.exe程序。)
#include "pch.h"
#include "InvWin32App.h"
int main()
{
Prc1();
}
没有比这更简单的了。当我尝试运行代码时,出现以下错误消息框:
Unable to start program
program name.dll
program name.dll is not
a valid Win32 application
我可以创建.exe程序了。今天早上我在运行VS 2017版本15.7.5时也遇到了错误。升级VS没有任何好处。我也尝试将它们编译为.c程序,但没有任何区别。
我曾几次使用VS 2015创建.exe程序时遇到此问题。我不记得自己做了什么,但问题消失了。任何帮助,将不胜感激。
TIA。
最佳答案
右键单击解决方案资源管理器中的可执行项目,然后单击“设置为启动项目”。
请注意,“不是有效的Win32应用程序”不是编译错误或链接错误,它是您尝试调试不可执行的内容时收到的消息。
您只能启动可执行文件。可执行文件消耗dll。这些应该是两个单独的项目,具有两组相应的项目设置。
关于c++ - 无法创建dll : Getting DLL "is not a valid Win32 application",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51864328/