__targv在我的MFC Windows应用程序中为空.参数 == 1
__targv is NULL in my MFC windows application. argc == 1
我有一个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。 这解决了我遇到的问题。
相关文章:
- 使用参数 + stdout + stderr 从命令行调用 MFC 应用程序
- 由于调用 std::condition_variable 后参数无效而导致应用程序崩溃
- 如何通过具有通信行参数的procdump启动Windows应用程序?
- 指定在用户固定我的应用程序时用于运行应用程序的命令参数
- 应用程序无法获取命令参数
- 应用程序参数的正则
- C 应用程序:Clear Commandline参数
- 无法在 ALSA 树莓派 c 应用程序上配置硬件参数
- 为在应用程序中作为函数参数传递的文件运行'iconv'命令C++
- 启动使用C 参数的Win32表单应用程序
- 是否可以将addr2line与使用发布优化参数编译的应用程序一起使用
- 如何在 C# 应用程序中使用 extern "C" dll 函数以 char** 作为参数?
- Android本机应用程序命令行参数
- 如何在安卓版Qt上获取应用程序参数
- 使用IDE中的命令行参数运行我的应用程序
- 将Unicode命令行参数传递到控制台应用程序
- 正在Qt应用程序中检索命令行参数
- 如何从c++应用程序启动java应用程序,传递参数并等待java应用程序的结果
- 如何在vc++中将路径作为参数传递到第二个应用程序中
- Qt中的GUI应用程序是否可以在运行时监听命令行参数?