草庐IT

可移植

全部标签

c++ - 在 C++ 中,将静态成员函数指针用于 C API 回调是否安全/可移植?

在C++中,将静态成员函数指针用于CAPI回调是否安全/可移植?静态成员函数的ABI和C函数一样吗? 最佳答案 根据C++标准,它是不安全的。如thisSOposting中所述:ACcallbackfunctionimplementedinC++mustbeextern"C".Itmayseemtoworkasastaticfunctioninaclassbecauseclass-staticfunctionsoftenusethesamecallingconventionasaCfunction.However,doingthat

c++ - 如何在 C++ 中编写可移植代码?

编写可移植代码时我应该记住哪些事情?由于我是c++初学者,所以我想从头开始练习。谢谢。 最佳答案 学习使用标准库阅读书籍(例如thisone)当你有经验时,学会使用boost 关于c++-如何在C++中编写可移植代码?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3103568/

c++ - 创建可在 linux 和 windows 上运行的可移植库

gcc(GCC)4.7.2你好,我正在创建一个将在linux上编译的共享库和一个在windows上使用相同源代码编译的dll。所以我正在为linux和windows创建一个可移植的库。在我的库头文件中是这个,即module.h#ifdef__cplusplusextern"C"{#endif#ifdef_WIN32#defineLIB_INTERFACE(type)EXTERN_C__declspec(dllexport)type#else#defineLIB_INTERFACE(type)type#endifLIB_INTERFACE(int)module_init();#ifdef

c++ - 用于 C/C++ 的可移植 zip 库(不是应用程序)

已结束。此问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是无关紧要的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,describetheproblem以及到目前为止为解决这个问题所做的工作。关闭8年前。Improvethisquestion我希望能够在多个版本的Windows、Linux/Unix和MacOS上从我的非guiC/C++应用程序中压缩文件。用户将使用Eclipse+makefile或VisualStudio使用此应用程序进行编译和运行。我不希望用户必须单

c++ - 用于 C 和 C++ 的函数签名的可移植 UNUSED 参数宏

我有兴趣创建一个宏来消除未使用的变量警告。这个问题描述了一种通过在函数代码中编写宏来抑制未使用参数警告的方法:UniversallycompilerindependentwayofimplementinganUNUSEDmacroinC/C++但我对可以在函数签名中使用的宏感兴趣:void回调(intUNUSED(some_useless_stuff)){}这是我用谷歌挖出来的(source)#ifdefUNUSED#elifdefined(__GNUC__)#defineUNUSED(x)UNUSED_##x__attribute__((unused))#elifdefined(__

c++ - 可以以可移植方式使用新的数组放置吗?

在将可移植代码用于数组时,是否可以实际使用placementnew?您从new[]返回的指针似乎并不总是与您传入的地址相同(5.3.4,标准中的注释12似乎确认这是正确的),但我不如果是这种情况,看看如何为数组分配一个缓冲区。以下示例显示了该问题。此示例使用VisualStudio编译,导致内存损坏:#include#includeclassA{public:A():data(0){}virtual~A(){}intdata;};intmain(){constintNUMELEMENTS=20;char*pBuffer=newchar[NUMELEMENTS*sizeof(A)];A*

c++ - 在 C++11 中设置 std::thread 优先级的可移植方法

在后C++11世界中,设置std::thread实例优先级的正确方法是什么是否有至少在Windows和POSIX(Linux)环境中有效的可移植方式?或者是获取句柄并使用特定操作系统可用的任何native调用的问题? 最佳答案 无法通过C++11库设置线程优先级。我认为这在C++14中不会改变,而且我的Crystal球太模糊了,无法评论之后的版本。在POSIX中,pthread_setschedparam(thread.native_handle(),policy,{priority});在Win32BOOLSetThreadPri

c++ - 将 32 位 C++ 代码移植到 64 位 - 值得吗?为什么?

我知道x64架构的一些明显优势(更高的可寻址RAM地址等)...但是:如果我的程序没有真正需要在native64位模式下运行怎么办。我还是应该移植它吗?终止32位支持是否有任何可预见的截止日期?我的应用程序会像原生x64代码一样运行得更快/更好/更安全吗? 最佳答案 x86-64有点特殊——对于许多架构(例如SPARC),为64位模式编译应用程序不会给它带来任何好处,除非它可以有利地使用超过4GB的内存。它所做的只是增加二进制文件的大小,如果它影响缓存行为,实际上会使代码变慢。但是,x86-64不仅为您提供了64位地址空间和64位整

c++ - 是否有可移植的等价于 DebugBreak()/__debugbreak?

在MSVC中,DebugBreak()或__debugbreak导致调试器中断。在x86上它相当于写“_asmint3”,在x64上它是不同的。使用gcc(或任何其他标准编译器)编译时,我也想中断调试器。是否有独立于平台的功能或内在功能?我看到了XCodequestion关于这一点,但它似乎不够便携。旁注:我主要想用它来实现ASSERT,我知道我可以为此使用assert(),但我也想在代码中编写DEBUG_BREAK或其他东西。 最佳答案 一种可移植到大多数POSIX系统的方法是:raise(SIGTRAP);

c++ - Boost 库的优点和可移植性

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter寻求指导。关闭9年前。自从我开始使用这个网站以来,我不断听到关于Boost库的消息。我想知道Boost库有哪些主要优点(因此我为什么要使用它)以及Boost库的可移植性如何? 最佳答案 Boost由标准委员会的几位成员组织。因此,它是下一个标准中图书馆的温床。它是STL的扩展(它填补了遗漏的位)有据可查。经过同行评审。它