__targv在我的MFC Windows应用程序中为空.参数 == 1

__targv is NULL in my MFC windows application. argc == 1

本文关键字:参数 应用程序 targv 我的 MFC Windows      更新时间:2023-10-16

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

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

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

以前有人遇到过这种情况吗?

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

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

感谢大家的建议和帮助。

如果有人感兴趣,这里是问题的一些结束。 另外,如果其他人遇到此问题,这是给他们的:

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

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

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