草庐IT

current_char

全部标签

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++ - 返回 char* 函数的内存管理

今天,我没有多想,写了一个简单的函数,根据给定枚举值的switch语句返回一个char*。然而,这让我想知道如何释放那段内存。我所做的是这样的:char*func(){char*retval=newchar[20];//Switchblahblah-willalwaysreturnsomevalueotherthanNULLsincedefault:returnretval;}如果这是一个天真的问题,我深表歉意,但是释放内存的最佳方式是什么,因为我无法在返回后删除内存,显然,如果我之前删除它,我将不会有返回值.我认为可行的解决方案是这样的voidfunc(char*&in){//bla

c++ - std::map::find(char*) 在 Debug模式下无法在 64 位机器上运行

我面临一个有趣的情况,想与大家分享。当然,如果有人能提供帮助,我将不胜感激!#include"stdafx.h"#include#defineDEF_NAME1"NAME1"#defineDEF_NAME2"NAME2"#defineDEF_NAME3"NAME3"#defineDEF_NAME4"NAME4"structTInfo{constchar*TName;constchar*TArray1[100];constchar*TArray2[100];};typedefstd::mapTInfoMap;typedefstd::pairTInfoPair;staticTInfoMap

c++ - 在 C 中我可以将 void* 分配给 char* 但在 C++ 中不行

如果文件是.cMSVC将编译。如果是.cpp,它“无法从‘void*’转换为‘unsignedchar*’”我在windows.h中使用MEMORY_BASIC_INFORMATION::BaseAddress,它是void*,将其分配给char*所以我可以看到你知道的实际地址?当我将它转换为char*,然后返回到void*(在Windows函数中使用它)时,它会出现错误并丢失数据或其他东西怎么办? 最佳答案 在C++中,您必须使用显式强制转换来转换void*其他任何事情:void*vp;unsignedchar*cp=static

c# - 无法写入 HKEY_CURRENT_USER

我有一个C#程序(VS2010),它将值写入我们创建的几个HKEY_CURRENT_USER注册表项。通常这在WinXP、Vista和7、x86和x64上运行良好。但在某些机器上,key不会被写入。没有异常抛出,键和值之后就不存在了。我们绞尽脑汁想弄清楚为什么会发生这种情况。它真的是零星的……在一台机器上它不工作——但在同一办公室或域中的所有其他机器上工作。我们应该寻找什么? 最佳答案 你所描述的听起来很像微软的RegistryVirtualization.但是,据我了解,这仅适用于HKEY_LOCAL_MACHINE\Softwa

c# - 我需要帮助在 C# 中使用 <string, char> 格式的字典

这篇文章是关于我在C#(VisualStudio2017中的Windows窗体应用程序,.NETFramework)中遇到的关于使用“字符串,字符”格式的字典的困难。这是我的:首先-一种格式的字典Dictionarybintoascii=newDictionary(){{"01000001",'A'},{"01000010",'B'},//..................{"01111010",'z'},{"00100000",''},};以及实际的转换代码:AsciiOutput.Text="";Stringbinninput=Input.Text;for(inti=0;i0)A

python + window : run exe as if it's unrelated to the current process

我知道我可以使用subprocess.Popen来运行可执行文件,并可能将标准输入和标准输出重定向到文件/使用管道连接到我的进程。但是,有没有一种方法可以运行可执行文件,使生成的进程与当前的Python进程无关?意思是,我想以与双击.exe相同的方式启动一个进程,或将其名称键入Start->Run... 最佳答案 在Windows上,请参阅os.startfile(). 关于python+window:runexeasifit'sunrelatedtothecurrentprocess,

c++ - 如何将 IStream 实例中的数据读入 char 指针?

我试图从我的IStream实例中复制一些二进制数据(因为Gdiplus::Image只保存到IStream派生对象或文件路径)到一个字符指针,我可以通过知道分配的二进制文件从中简单地读取大小并可以访问指针。我的类如下:Upload::Upload(Gdiplus::Bitmap*bitmap,CLSIDclsEncoderId){intresult;STATSTGstatResult;result=CreateStreamOnHGlobal(0,TRUE,&m_hBufferStream);if(result!=S_OK)MessageBoxW(NULL,_T("Upload::Upl

windows - "DPInst.exe not supported on current OS"

我有一个安装程序可以从FTDI安装USB串行驱动程序。但是在某些计算机上(所有计算机都运行俄语WindowsXP,因此可能是语言问题)安装失败。我尝试使用干净的俄语WindowsXPProfessionalSP3重复它,但它可以正常工作,所以这不是一个明确的语言问题。dpinst.log文件说:`INFO:04/18/201314:05:34INFO:ProductVersion2.1.0.0.INFO:Version:6.1.7601ServicePack1INFO:PlatformID:2(NT)INFO:ServicePack:1.0INFO:Suite:0x0100,Produ

c - Windows 中与 mkstemp(char* template) 行为相似的函数

我正在寻找与行为类似的Windows函数的方向mkstemp(char*)在Linux中执行,即创建唯一文件名、打开文件并返回文件描述符。我遇到过_mktemp_s,但这只包含了我需要的一小部分。在Windows风格的mkstemp()函数的实现中的任何建议/信息将不胜感激。 最佳答案 如果允许WINAPI,则函数GetTempFileName()几乎完成所有需要的事情,除了它不返回文件描述符。此函数可以包装在一个函数中以实现所需的确切行为。 关于c-Windows中与mkstemp(c