无法创建 DLL:获取 DLL“不是有效的 Win32 应用程序”

新手上路,请多包涵

正如标题所说,我无法创建一个简单的 DLL。我正在使用 VS 2017 社区版 15.8.0 版。这是.dll代码:

 #include "stdafx.h"
#include "InvWin32App.h"

#include "$StdHdr.h"

void Prc1()
{
    printf("ran procedure 1\n");
}

这是标题的代码,按照 MS 的做事方式:

 #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。

原文由 J. Toran 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.4k
1 个回答

在解决方案资源管理器中右键单击作为可执行文件的项目,然后单击“设置为启动项目”。

请注意,“不是有效的 Win32 应用程序”不是编译错误或链接错误,它是您尝试调试不可执行的内容时收到的消息。

您只能启动可执行文件。可执行文件消耗 dll。这些应该是两个单独的项目,具有两组相应的项目设置。

原文由 Christopher Pisz 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题