草庐IT

c++ - GoLang 将 C.wchar_t 转为字符串

我希望转换[32]C.wchar_t到一个go字符串。数组在dll中定义如下我正在和:typedefstructmyStruct{WCHARsomeString[32];}我在go中定义结构如下:typemyStructstruct{someString[32]C.wchar_t}我在dll中有一个方法:DLLINTERFACEHRESULT__stdcallGetMyStruct(myStruct*ptrMyStruct);此方法将填充someString领域myStruct.我这样调用方法(我认为这工作正常,我无法看到someString的内容):funcgetMyStruct()

c++ - WCHAR 到 String,我该怎么做?

String*Adder::downloadUrl(String*url){DWORDdwSize=0;LPVOIDlpOutBuffer=NULL;BOOLbResults=FALSE;HINTERNEThSession=NULL,hConnect=NULL,hRequest=NULL;//UseWinHttpOpentoobtainasessionhandle.hSession=WinHttpOpen(L"AWinHTTPExampleProgram/1.0",WINHTTP_ACCESS_TYPE_DEFAULT_PROXY,WINHTTP_NO_PROXY_NAME,WINHT

c++ - 了解将使用哪个 swprintf(或者再次将 char* 字符串转换为 wchar_t*)

我正在尝试将char*字符串转换为wchar_t*。我看到这个问题已经被问了很多次,但没有解决/可移植的答案/解决方案。按照建议here,swprintf对我来说似乎是正确的解决方案,但我发现那里存在两个版本!!即:http://www.cplusplus.com/reference/cwchar/swprintf/(第二个参数是字符串容量)http://msdn.microsoft.com/en-us/library/ybk95axf%28v=vs.71%29.aspx(第二个参数已经是格式字符串)我的程序看起来像这样:constunsignedintLOCAL_SIZE=256;c

c++ - 为什么 std::codecvt<wchar_t, char, mbstate_t> 不能按定义工作?

#includeusingnamespacestd;voidf1(){wcout.imbue(locale("chs"));wcout());wcout.imbue(loc);wcout根据cplusplus.com的在线文档:codecvt:convertsbetweennativewideandnarrowcharactersets.本程序用VC++编译,Windows运行。在本程序中,内部字符集为UCS-2,由VC++编译器定义;外部字符集,即窄字符集,在控制台环境下是GBK(中文字符集)。如果文档为真,则wcout可以像f1()一样将unicode字符串从UCS-2转换为GBK

c++ - 如何在 C++ 中将 CHAR 变量复制到 WCHAR 变量

我想将CHAR文件转换为UNICODE文件。我逐字符读取CHAR文件类型的文件,然后将此字符保存在CHAR变量中,然后我想将此CHAR变量复制到WCHAR变量,然后将WCHAR变量写入UNICODE文件。代码如下:#include#includeint_tmain(intargc,LPCTSTRargv[]){HANDLEhInfile,hOutfile;CHARf1;WCHARf2;DWORDRd,Wrt;INTi;CreateFile(argv[1],GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,NULL,NULL);CreateF

c++ - 通过旧的(非 wchar)API 函数在非 ANSI 系统上打开文件

我正在编写一些让我抓狂的中间件。我正在寻找一些I18N专家来帮助我-这对我来说都是全新的。现在这一切都在Windows中,但它也必须在Linux和Mac上运行,尽管我敢打赌它们会很容易。我有一个系统(我无法触摸),它会给我一个类似于wchar_t*的字符串。它接受UTF-8或当前语言环境的输入,并神奇地给我一个wchar_t*。我有另一个我正在使用的API,它只能将文件名作为char*(我也不能触摸)。所以我一直在做的是在wchar_t*中获取我的文件名并使用WindowsAPI函数WideCharToMultiByte并将其转换为char*并将其传递给我的其他API函数。它工作得很好

c - wchar 和注册表项的问题

所以我想向注册表添加一个字符串,因为注册表字符串以NULL结尾,我的字符串在各个地方都包含一个空字符。这是我的字符串的样子。charnames[550]="1DFA-3327-*\01DFA-3527-*\001DFA-E527-*\00951-1500-我像这样将其转换为whcar_t字符串。wchar_tnames_w[1000];size_tcharsConverted=0;mbstowcs_s(&charsConverted,names_w,names,SIZE);RegSetValueEx(*pKeyHandle,valueName,0,REG_MULTI_SZ,(LPBYT

c++ - 检查UTF-8是wchar_t还是char?

我正在调用zlibAPIzipOpen,它从我的C++项目创建一个新的zip文件。函数签名是externzipFileZEXPORTzipOpen(constchar*pathname,intappend)。此调用最终调用fopen以创建文件。但是,此函数不支持宽字符,我想通过发送UTF-8格式(由char*和fit函数签名表示)并在调用fopen之前检查是否字符串包含非ascii字符,如果没有,像以前一样调用fopen。如果是,转换为宽字符串(wchar_t)并调用_wfopen。所以问题是是否有一个C/C++API可以检查UTF-8格式的字符串是否包含非ascii字符?基本上我正在

c++ - WCHAR 到 LPCWSTR

当我像下面这样使用CreateFile函数时......它给了我有效的句柄HANDLEhDevice=CreateFile(TEXT("\\\\.\\G:"),0,FILE_SHARE_READ|FILE_SHARE_WRITE,//sharemodeNULL,OPEN_EXISTING,0,NULL);if(hDevice==INVALID_HANDLE_VALUE){qDebug()当我像下面这样使用时......它给我无效的句柄..WCHARDrive[4];qDebug()如何将wchar更改为LPCWSTR谢谢 最佳答案

c++ - 如何在 visual studio(c++) 中将文字中文字符串分配给 wchar_t*?

我正在尝试在visualstudioforC++的Windows测试应用程序中编译以下代码:constwchar_t*chinese="好久不见";但是我得到以下错误:errorC2440:'initializing':cannotconvertfrom'constchar[5]'to'constwchar_t*我正在用unicode编译,所以我对此感到困惑。如果我像这样转换文字,错误就会消失:constwchar_t*chinese=(wchar_t*)"好久不见";我不确定这样做是否安全,我也不想这样做,所以我该如何解决这个问题。谢谢! 最佳答案