2

我有一个 Windows 应用程序设置如下: 调试 - 构建一个静态链接它使用的库的 exe 发布 - 构建一个链接到 DLL 的 exe

我刚刚创建了发布版本,唯一的区别是使用的库之一现在正在构建为 DLL。

当我执行我的应用程序时,只要访问命令行参数,它就会崩溃。这是由于 __targv 为 NULL,而 argc == 1。

有没有人遇到过这个?

4

2 回答 2

2

感谢大家的建议和帮助。

如果有人有兴趣,这里有一些解决问题的方法。此外,如果其他人遇到这个问题,这是给他们的:

在创建 DLL 的过程中,我不得不将 C 运行时库切换为 MD(DLL 类型)和(我认为)MFC 链接配置(UseOfMFC)。

我错误地混合了 UseOfMFC 类型,我认为这会弄乱 _targv 并在调用任何 AFX 函数时导致异常。

我重新访问了该项目,将所有配置更改为使用 DLL 类型 CRT,并保持 UseOfMFC 不变。这解决了我遇到的问题。

于 2011-06-15T17:01:19.490 回答
2

__targv 中的第一个参数是当前可执行文件的路径和名称。

这就是参数计数为 1 的原因。尝试在屏幕上打印 的内容__targv[0],您应该会看到类似的内容(可执行文件的路径在C:/.../.../foobar.exe哪里,并且是 exe).../...foobar.exe

于 2011-05-16T17:39:45.783 回答