如何在mfc ++中将char *转换为char **

时间:2013-07-30 06:07:57

标签: c++ visual-studio-2010 visual-c++ mfc

我有一个像这样的代码主程序的输入

char * argv[]我现在正试图从命令行函数

获取参数
char *argv = GetCommandLine();

但我无法将此功能作为参数传递给

parseCommandLineArguments(argc, argv);

它给我的错误cannot convert parameter 2 from 'char *' to 'char **' 请有人帮帮我。谢谢。

它基本上是控制台main function的参数。我想在main function中没有输入参数的情况下将其更改为MFC dialogue based application

4 个答案:

答案 0 :(得分:3)

首先将char *转换为char **。如果您只想转换,那么您应该通过以下代码。

char **variableName=(char **) argv;

但根据我的说法,你在单个字符*中有多个参数,所以你首先将char *分解为多个字符串。

基本规则是,

char *: - 用于单字符串,如

char* MyOwn = "Hey There"; 

虽然char **用于多个字符串。

char** multipleString;
multipleString= (char**)malloc( 3 * sizeof(char*) );        //allocating memory location..
multipleString[0] = "First";
multipleString[1] = "Second";
multipleString[2] = "Third";

答案 1 :(得分:2)

您可以访问的全局变量__argc__argv / __wargv应该已经填充了数据。

答案 2 :(得分:0)

副手,我猜是parseCommandLineArguments 期待传递给的标准(int, char**) mainGetCommandLine()返回原始命令行,其中 你必须解析。似乎没有任何需要; 只需使用您获得的参数调用parseCommandLineArguments即可 在main

答案 3 :(得分:-3)

试试这个

char ** variableName =(char * * )* argv;