#include "stdafx.h"
#include "string.h"
#include "windows.h"
bool SCS_GetAgentInfo(char name[32],char version[32], char description[256], const char * dwAppVersion)
{
strcpy(name,gName);
strcpy(version,gVersion);
strcpy(description,gDescription);
notify(dwAppVersion);
return true;
}
void notify(const char * msg)
{
MessageBox(NULL, TEXT(msg), NULL, NULL);
}
我设法与前三个字段精细的工作,但我正在与为const char *的问题。我尝试了很多不同的方式传球和投篮,但无法让它运作起来。我搜索了一下,但在Lmsg上找不到多少东西。我对此很感兴趣。我已经阅读,我认为这可能与编码有关。让我困惑的是LPCTSTR被定义为一个const char *,但直接类型转换并不能给我任何东西。C基本数据的数据类型的问题 - 为const char *到LPCTSTR
我得到一个错误,说明Lmsg未声明,我猜测这意味着TEXT的宏扩展导致了这种情况。我怎样才能得到这个工作?
做MessageBox(NULL, (LPCTSTR)msg, NULL, NULL);
反而给了我一堆表明它可能引用了错误字符的框,但是将dwAppsVersion参数复制到描述中会显示正确的信息。
并非Windows中的所有“ANSI”字符串都是CP-1252。这只是美国英语的默认值。它会因机器而异。由于这个原因,应该避免使用'* A'功能。建立Unicode应用程序。如果您需要转换为传统字符串或从传统字符串转换,请使用带'MultiByteToWideChar' /'WideCharToMultiByte'的'CP_UTF8',因为UTF-8可以表示Unicode可以代表的任何内容。 – asveikau 2011-05-30 11:13:32