草庐IT

c++ - 最好的 C++ XML 库,快速设置

我想知道C++中最好的XML库是什么(我使用的是VisualStudio),考虑到快速设置至关重要。基本上,我想创建一个文件来保存各种.avi文件的注释。提前谢谢你。 最佳答案 你应该能够得到TinyXML在几分钟内完成设置并开始工作。 关于c++-最好的C++XML库,快速设置,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2990903/

c++ - 组织测试项目和主要可执行文件 - C & C++

我有以下目录结构。root--src---testssrc包含应用程序的源文件和头文件(C文件)。构建此应用程序时,它会生成一个可执行文件。tests目录包含应用程序的单元测试用例(C++文件,使用UnitTest++作为测试框架)。在测试项目中,我可以从src目录中包含头文件,编译将通过。链接时出现问题。链接器将无法在源目录中找到目标文件。我该如何解决这个问题?在C和C++项目中,将一个可执行文件用于主应用程序而将另一个可执行文件用于测试的常规做法是什么,两者都需要相同的源文件才能使用?应用程序类型:跨平台。当前开发环境:Linux构建工具:CMake任何帮助都会很棒!

c++ - 使用 CMake 制作跨平台库?

CMake难用吗?我一直在使用Windows和MSVC++开发一个库。我在Linux和OSX中测试了我的代码,方法是从每个文件中繁琐地创建对象并从中创建一个库。我有几个目录例如:Agui->Widgets->Button->ListBox->Backends->Allegro我想要的是,例如,如果我在Windows上,它会自动生成一个msvc项目,其中包含所有这些目录和文件,并准备好进行编译。在Linux和OSX上我希望能够做类似的事情制作制作使用CMake可以做到这一点吗?考虑到我的情况,这很容易做到。谢谢 最佳答案 是的,这正是

c++ - 帮助使用 perlin 噪声库 libnoise

当我用x、y和z作为整数调用libnoise的getvalue函数时,结果总是返回0。这是正常的吗?当我在教程中尝试1.25、0.75、0.5时http://libnoise.sourceforge.net/tutorials/tutorial2.html我得到0.686347的预期结果。具体来说,我已经尝试使用20以下的整数。我只是不明白这是如何工作的吗?非常感谢任何帮助。 最佳答案 虽然OliCharlesworth是正确的,但您会在整数值处得到零,因为所有零都出现在整数值处。请参阅上图以获得简单的视觉演示!零出现在整数处的原因

c++ - 链接到 Visual Studio 2010 中的静态库

要知道的事情:我非常确定我正在使用正确的静态库(包括dllexport和所有)生成的.lib文件非常大(3M、8M等)。共享的在300K-1M左右。所以我很确定.lib文件是静态的我想在单独的解决方案中链接到这些静态库文件这是一个非托管的C/C++项目我读到我需要使用新的UI(公共(public)属性>添加新引用等等)。但是为了让它起作用,我需要将整个项目添加到我的解决方案中。有没有办法将我的项目链接到静态库(不添加其源代码)。 最佳答案 “添加新引用”是一个.NET选项,用于添加程序集引用。您不能在.NET中创建静态链接库,程序集

c++ - 是否有模板元程序来确定编译器在编译时的字节顺序?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:IsthereawaytodoaC++stylecompile-timeassertiontodeterminemachine'sendianness?我正在寻找一个本着Boost::type_traitsspirit的模板元程序,它会返回编译器是大端还是小端。类似于is_big_endian.这个怎么写?这个的用途是创建一个库,通过基于字节顺序实现特定的模板特化,自动适应环境。例如,templatevoidcopy_big_endian_impl(T*dst,constT*src,size_tsz){//s

c++ - 我应该为 C++ 库使用什么优化设置

我想编写一个(静态)库供其他程序员使用,它使用了编译器的优化。在使用调试版本编写和测试库时,我发现它运行得相当慢,但如果我切换到发布版本,那么它的速度似乎可以接受。目前,我已将该库编译为调试版本,并在另一个项目中使用它,我注意到它运行得有多慢,但如果我尝试将我的新项目切换到发布版本,则链接失败并出现很多这样的错误:LIBCMTD.lib(tzset.obj):errorLNK2005:__tzsetalreadydefinedinMSVCRT.lib(MSVCR90.dll)在构建我的库时我应该使用什么设置,以便程序员可以在他们自己的项目中使用该库,以便无论他们使用调试还是发布构建,它

.net - 我应该如何用 C++ 编写我的库以便在 .NET 中使用?

我有一个用C++编写的库的原型(prototype)。它是CPU密集型的,所以我用C编写了一个部分(因为工具),C++中的内容并使用了自定义内存分配器和各种东西。我想在.NET中使用这个库。我不确定我应该怎么做。似乎我应该编写一个C接口(interface)并在.NET中编写一个包装器以使用托管C++,我假设我有完全相同的代码文件,除了我添加一个或两个文件并为它们编写一个托管类。如果我选择托管路线,我应该了解哪些好处或限制? 最佳答案 C++/CLI是您正在寻找的答案。C++/CLI的美妙之处在于它允许您将nativeC++与.NE

c++ - pi 计算的 OpenMP 并行化速度慢或错误

我在并行化我的蒙特卡洛方法来计算圆周率时遇到了问题。这是并行化的for循环:#pragmaompparallelforprivate(i,x,y)schedule(static)reduction(+:count)for(i=0;i问题是,如果我使用schedule(static),它会低估pi,如果我使用schedule(dynamic),它会比串行实现慢。我究竟做错了什么?我尝试了其他方法来修复它(例如:UsingOpenMPtocalculatethevalueofPI),但它仍然比串行实现慢得多。提前致谢 最佳答案 假设您正

c++ - 禁止导入库创建 - Visual C++ 链接器

是否有一种可能未记录的方法来阻止链接器为DLL或EXE创建IMPLIB,尽管源代码中有__declspec(dllexport)指令?不指定/IMPLIB会导致.LIB使用默认名称创建。当declspec指令来自不受控制的第3方代码时,这一点很重要。例如,boost::serialization就是这种情况。一种可能的解决方案是“取消声明”DLL导出的方法。DEF文件也不能这样做(AFAIK),因为它只能添加到导出列表而不能从中删除。 最佳答案 许多第3方代码不直接使用__declspec(dllexport),而是将其隐藏在宏下以