草庐IT

C++使用CSmtp库发送邮件

我正在尝试使用CSmtp发送电子邮件http://www.codeproject.com/Articles/98355/SMTP-Client-with-SSL-TLS这些代码行在这里造成了伤害:if((sockAddr.sin_addr.s_addr=inet_addr(szServer))==INADDR_NONE){LPHOSTENThost;host=gethostbyname(szServer);if(host)memcpy(&sockAddr.sin_addr,host->h_addr_list[0],host->h_length);else{#ifdefLINUXclos

c++ - 如何控制 Microsoft C 运行时库使用的 CPU 指令?

是否可以控制MSC运行时库(VisualStudio2013、2015)使用哪些CPU指令集?如果我进入cos()的反汇编程序,代码将与一组预先计算的CPU功能进行比较,然后使用CPU上可用的“最佳”功能执行该功能。问题在于不同的指令集产生不同的结果,因此结果因CPU架构而异。例如,构建一个64位可执行文件:std::cout在Haswell/Broadwell上,之后返回0.81743370050726594(与x86相同)。在旧CPU上返回0.81743370050726583。运行时库使用FMAinstructionset如果可用,执行不同的实现并产生不同的结果。请注意,这不受应

c++ - 对 __isoc99_sscanf 的 undefined reference

我有一个使用sscanf的静态C库libex.a。库是使用-std=c99编译的我想在使用-std=c++11编译的某些C++代码中使用库函数,但出现以下错误:lib/libex.a(srcfile.o):Infunction`my_function':/srcpath/srcfile.c:215:undefinedreferenceto`__isoc99_sscanf'经过一番探索后,我发现sscanf由于向后兼容性黑客攻击而存在版本问题,因此重定向到__isoc99_sscanf,所以我怀疑这是不知何故问题的根源。但是,我检查了我的glibc版本,它看起来足够新,以至于其他地方建议

c++ - C 编译 : error: stray '\4' in program ; octal flow?

正在尝试编译大量.c文件(1)文件编译正常,使用cccc-Wall-Wextra-Wunreachable-code-ggdb-O0*.c(2)然后,我需要根据最终输出创建一个静态库,以在C++程序中使用。所以我这样做:arcruliborientdb-c.a*.o(3)工作正常。但是,当我编译包含第1行库的c++程序testme.cpp时(line1oftestme.cpp)#include"liborientdb-c.a"编译步骤:cctestme.cpp我收到这个错误:liborientdb-c.a:117:22:error:stray'\3'inprogramliborient

c++ - 使用 Waf 在 Windows 上构建 NITRO NITF 库

我正在尝试在Windows64位上构建NITRONITF库。另外,我需要构建C++共享库来链接,即DLL而不仅仅是EXE。我正在尝试构建:pythonwafconfigurebuild--enable-debugging--prefix=installed--enable-cpp11--enable-64bit--dist-source--msvc_targets=x64--shared但在构建过程中我得到:无效的def文件'lib/libxerces.def'图书馆位于此处:https://github.com/mdaus/nitro有没有人有在Windows上构建这个库的经验?

c++ - 从 C 代码调用具有复杂参数和复杂返回类型的 C++ 函数

我有一个C++数学库并用Rust编写了一个项目。由于无法直接从Rust调用C++,但可以调用C,因此我决定编写一个从C++到C的标准包装器。除具有复杂参数的函数外,一切都或多或少地按预期工作,其中虚部由于某种原因丢失。下面我提供mwe。export_c++.h#ifdef__cplusplus#includestd::complexfoo(conststd::complexa);#endif#ifdef__cplusplusextern"C"{#endif#includedouble_Complexc_foo(constdouble_Complexa);#ifdef__cplusplu

c++ - Linux 共享库中缺少函数

我支持一个Linux程序,它允许用户编写他们自己的基于.so文件的插件,这些插件在运行时使用dlopen()加载。有时用户会忘记在makefile中包含一个包含必要函数定义的C++文件。当插件管理器使用dlsym()从依赖于这些缺失函数定义之一的插件加载导出函数时,我得到一个空函数地址。我的问题:如何提前检测到此错误?我试过-zdefs和-Wno-undef链接器标志,但它们不会产生错误。我尝试了带有各种标志的nm、readelf和objdump命令,但未定义的函数根本没有出现在符号表中。有什么建议么?谢谢! 最佳答案 我怀疑空函数

c++ - 如何从多个静态库中创建一个静态库?

我们最近将一个C++项目从VisualStudio6转换到VisualStudio8。一切都很顺利,直到我们编译了一个将所有静态库放入一个大静态库中的项目。默认情况下,在两个版本的项目之间转换后,项目没有做任何事情(没有创建大的静态库,它只是说项目是最新的)。我们通过向项目添加一个虚拟(空)文件找到了一个可行的解决方案(之前在VisualStudio6解决方案中没有其他文件)。一切顺利,我们设法使用新的开发环境(VisualStudio8)编译项目。我的问题是:如果不向项目中添加虚拟文件,还有其他方法可以做到这一点吗?提前感谢您的回复 最佳答案

c++ - Pe编辑库?

有人知道编辑PE文件的好库吗?我试过PeLib,但它非常基础,无论如何你几乎必须做所有事情。 最佳答案 作为替代方案,有libbfd(GCC和其他后端的后端):Documentation和download我快速浏览了一下PeLib的概览,但在可访问性方面似乎并不差。我不知道您对这样的库有什么期望,但是大多数对象格式库都不知道您对它们有什么期望,因此几乎没有提供特定的访问权限。换句话说:这样的库只是让你免于解析对象格式。如果您想做一些具体的事情,我们知道它会有所帮助。 关于c++-Pe编辑

c++ - 文件同步库

我正在研究允许我通过网络同步信息的C/C++库(Win/Linux)。我想运行我的程序的多个实例(在不同的PC上),并希望在本地同步文件,而不是通过网络在一个位置远程访问文件。如果所有实例要保持数据库的一致性,它还需要注意任何消息传递错误,因此需要一种确认机制。我偶然发现了几个解决方案,但我仍在努力找出我最好的解决方案。如有任何建议,我们将不胜感激,如有任何疑问,请随时提出。编辑我一直在研究enet和UDT有没有人有使用它们的经验? 最佳答案 我认为这样的东西的设计空间非常大,但它让我想起了前几天看到的一个很酷的库,VAST.这个想