LPCWSTR作为参数的有关问题
LPCWSTR作为参数的问题
各位前辈我遇到了这样的问题,如某函数fun(LPCWSTR a)的参数a是由函数WinMain(HINSTANCE hInst, HINSTANCE prevhInst,LPSTR cmdLine, int show)的cmdline转化得来的,但是这时并不能将cmdline的值直接作为fun()的参数,于是我在网上找了一些char*转化为wchar*的方法来把它转化了以后发现还是不行(也有可能是没转化正确),另外转化了以后我是直接这样处理的:
假设转化后的变量为 path(LPWSTR这种类型的);
LPCWSTR PP=path;
fun(pp);
请各位前辈看看上面这个处理方法是不是也有问题(这样编译的时候没有问题就是运行时不能按期望运行);
另外假设cmdline传来的路径为"c:\123.jpg",此时我已经去掉了它两端的引号,请哪位前辈帮我写几句C++代码把这个cmdline传来的路径转化为可作为fun这个函数的LPCWSTR类型的参数的变量;要是能用MultiByteToWideChar()这个函数来转化的那就最好了,辛苦了,非常感谢.
------解决方案--------------------
http://blog.****.net/hui211314ddhui/article/details/14579663
------解决方案--------------------
char cMBCSBuffer[] = "中文ABC";
wchar_t *pWideChar = NULL;
char *pUTF8Buffer = NULL;
int nRequiredSize = 0;
int nRet = 0;
__try
{
nRequiredSize = MultiByteToWideChar(CP_ACP,0,cMBCSBuffer,-1,NULL,0);
pWideChar = new wchar_t[nRequiredSize];
if (!pWideChar)
{
__leave;
}
nRet = MultiByteToWideChar(CP_ACP,0,cMBCSBuffer,-1,pWideChar,nRequiredSize);
if (nRet == 0)
{
__leave;
}
各位前辈我遇到了这样的问题,如某函数fun(LPCWSTR a)的参数a是由函数WinMain(HINSTANCE hInst, HINSTANCE prevhInst,LPSTR cmdLine, int show)的cmdline转化得来的,但是这时并不能将cmdline的值直接作为fun()的参数,于是我在网上找了一些char*转化为wchar*的方法来把它转化了以后发现还是不行(也有可能是没转化正确),另外转化了以后我是直接这样处理的:
假设转化后的变量为 path(LPWSTR这种类型的);
LPCWSTR PP=path;
fun(pp);
请各位前辈看看上面这个处理方法是不是也有问题(这样编译的时候没有问题就是运行时不能按期望运行);
另外假设cmdline传来的路径为"c:\123.jpg",此时我已经去掉了它两端的引号,请哪位前辈帮我写几句C++代码把这个cmdline传来的路径转化为可作为fun这个函数的LPCWSTR类型的参数的变量;要是能用MultiByteToWideChar()这个函数来转化的那就最好了,辛苦了,非常感谢.
------解决方案--------------------
http://blog.****.net/hui211314ddhui/article/details/14579663
------解决方案--------------------
char cMBCSBuffer[] = "中文ABC";
wchar_t *pWideChar = NULL;
char *pUTF8Buffer = NULL;
int nRequiredSize = 0;
int nRet = 0;
__try
{
nRequiredSize = MultiByteToWideChar(CP_ACP,0,cMBCSBuffer,-1,NULL,0);
pWideChar = new wchar_t[nRequiredSize];
if (!pWideChar)
{
__leave;
}
nRet = MultiByteToWideChar(CP_ACP,0,cMBCSBuffer,-1,pWideChar,nRequiredSize);
if (nRet == 0)
{
__leave;
}