草庐IT

strcmp函数

全部标签

c++ - typedef 一个可在 Windows 和 Linux 上使用的 C++ 函数

我在Windows(WIN32API)中有一些庞大的C++代码库,现在我也想将它移植到Linux。但是,更改代码并不是一个好主意,因为对于Linux和Windows,将有两个文件拷贝。相反,我的想法是,拥有一个包含所有WIN32特定声明到Linux声明的typedef的头文件,并适本地包含它。#ifdef__gnu_linux__#include"linuxCPPTypeDef.h"#endiflinuxCPPTypeDef.h将包含typedefunsignedintDWORD;等到这里为止一切都很好。棘手的部分是..我的代码在很多地方使用标准的min函数,但g++不理解它(需要st

c - 我的 SHA256 哈希函数有什么问题?

我正在Windows应用程序中编写此函数,该应用程序生成某些文本的SHA-256哈希值。代码编译并运行良好,但似乎产生了不正确的输出。charGSalt[17]={0};HRESULTSaltHashAndStorePassword(_In_char*PlainTextPassword){HCRYPTPROVCryptProvider=NULL;HCRYPTHASHHashPointer=NULL;charPlainTextPasswordWithSalt[64]={0};strcat_s(PlainTextPasswordWithSalt,PlainTextPassword);str

c++ - 为 boost::locale::conv 中的函数获取用户的代码页名称

手头的任务我在Windows上从UTF-8编码的XML解析文件名。我需要将该文件名传递给一个我无法更改的函数。在内部它使用_fsopen()不支持Unicode字符串。当前方法我目前的方法是将文件名转换为用户的字符集,希望文件名可以用该编码表示。然后我使用boost::locale::conv::from_utf()从UTF-8转换,我使用boost::locale::util::get_system_locale()获取当前语言环境的名称。生活美好吗?我在德语系统上使用代码页Windows-1252因此get_system_locale()正确地产生了de_DE.windows-12

c++ - 使用 DWORD 解析重载函数调用

使用MicrosoftC++2017,64位构建,以下代码行生成编译错误,对重载函数的调用不明确:print(pmc.PageFaultCount);我定义了以下打印函数,希望能明确涵盖所有常用的整数类型:voidprint(int32_tn);voidprint(int64_tn);voidprint(uint32_tn);voidprint(uint64_tn);pmc.PageFaultCount声明为DWORD,记录为无符号32位整数。我希望选择uint32_t重载。这怎么模棱两可?更重要的是,如果上述一组重载不足以打印任何整数,那么什么一组重载就足够了?

【c++中内存拷贝函数(C++ memcpy)详解】

原型:void*memcpy(void*dest,constvoid*src,unsignedintcount); 功能:由src所指内存区域复制count个字节到dest所指内存区域。 说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。  举例: // memcpy.c             #include        #include        main()       {           char*s="Golden Global View";   chard[20];   clrscr();   memcpy(d,s,strlen(s));   d[

c - c中的ftruncate trunc文件找不到这个函数

我想截断文件,比如setsizeof()和FILE*我正在开发vs2003windows#includethere'snosuchlib我该怎么做freopen()会截断所有vut未写入的数据-出现EINVAL错误一些帮助?????? 最佳答案 _chsize函数做得更好,它让fdans大小更改为 关于c-c中的ftruncatetrunc文件找不到这个函数,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.c

.net - 托管 System::Diagnostics::Debugger::Launch 函数的非托管/ native 替代方案?

我有一个混合模式应用程序,如果在内部数据结构中发现错误,我想在其中启动调试器。奇怪的是,DebugBreak和__debugbreak函数似乎没有按预期工作(.Net框架似乎拦截了断点异常,导致各种讨厌的副作用)。我之前的问题的解决方案(参见BehaviorofDebugBreakdiffersbetweenunmanagedandmixed(unmanaged+managed)application?)似乎适用于非常简单的情况,但不适用于我的应用程序(它只会让我的应用程序挂起)。幸运的是,我发现执行System::Diagnostics::Debugger::Launch似乎可以解决

C++,在静态成员函数中使用 'this' 的宏解决方法

我已经覆盖了new以便我可以跟踪内存分配。__FILE__、__LINE__、模块名称等附加参数添加到#define中。但是我想将调用对象的地址添加到参数中,以便在查找问题时可以回溯分配。最简单的方法是将“this”添加到那些附加参数中(这意味着调用者的地址被传递到我的自定义分配内容中)。不幸的是,我们的代码中有很多单例,这意味着一堆调用new的静态成员函数。编译器抛出错误C2671:'...':staticmemberfunctionsdonothave'this'pointers是否有一种解决方法,我可以在不使用this的情况下获取对象的地址,这也将实现它在静态方法中并传递null

c++ - 当 OFN_ALLOWMULTISELECT 时,Windows API 函数 GetOpenFileName() 的字符限制是否有解决方法?

根据MSDN文档,函数GetOpenFileName()当使用Windows2000及更高版本为Unicode编译时,选项OFN_ALLOWMULTISELECT没有字符限制。但是,在WindowsXPx64SP2上,我发现尽管使用了Unicode,但32kANSI限制仍然有效。我在网上看到过其他关于此问题的投诉,但没有解决方案。有谁知道一个简单的解决方法吗?为了完整起见,我使用的是VisualStudio2010,并使用C++进行编码。 最佳答案 文档可能有误。GetOpenFileName()在某种程度上已被弃用,它不再支持最新

C 函数没有任何输入的 'wait',但检测是否有?

是否有一个C函数不等待输入,但如果有,它会检测到输入?我在这里要做的是无限循环,直到按下任何键。我是新手,到目前为止我学到的所有输入功能都在等待用户输入一些东西。我希望我很清楚,但如果我不清楚,我很乐意发布代码.. 最佳答案 Windowskbhit()正是执行此非阻塞键盘字符就绪检查,并且有一个用于Linux的kbhit()overhere 关于C函数没有任何输入的'wait',但检测是否有?,我们在StackOverflow上找到一个类似的问题: http