草庐IT

c++ - C++ 和共享库中的代码执行点

我和一位同事就使用共享库时的内存分配以及实际执行代码的“位置”进行了有趣的讨论。提示:我是在明确地寻找笼统的答案。我知道在构建共享库和应用程序时使用完全相同的编译器和设置时,以下几点会起作用。我想假设DLL是使用与应用程序完全不同的编译器构建的。给定以下structFoo:structFoo{intm_FooBar=1;constchar*GetBar(){returnm_Bar.c_str();}voidSetBar(constchar*value){m_Bar=value;}private:std::stringm_Bar;};假设共享库公开了一个函数Foo*GetFoo()并且外

java - 通过 CreateProcess() 启动的 JVM 丢失类路径库

我使用CreateProcess(或_spawnv())从WindowsVC++6程序启动以下命令行(进程):java-cpc:\dir\updates.jar;c:\dir\main.jar主和updates.jar中的类更新(覆盖main.jar中的一些)未被读取或找到。好像找不到或无法读取updates.jar库。如果我从快捷方式或正确的命令行启动同一行,一切都会找到并正确执行。如果我从命令行启动JVM,保持运行,然后启动可执行stub(如上),那么一切正常。(这使得问题看起来像是文件权限问题)。任何见解将不胜感激!--爱德华 最佳答案

c - 如何在 Windows 中使用 ruby​​ 扩展库(c 语言)运行我的 ruby​​ 应用程序?

如果您对此有任何帮助,我将不胜感激:我想为我的c库编写一个扩展。我创建了使用库libzmq(用C++编写)的文件zmq.cpp。我使用ruby​​extconf.rb创建了makefile,然后运行​​nmake。一切顺利。Nmake生成的文件librbzmq-i386-mswin32.deflibrbzmq-i386-mswin32.liblibrbzmq-i386-mswin32.explibrbzmq.solibrbzmq.so.manifest这一切都是在WindowsXP中完成的。然后我有一个测试程序,在我的第一行有:require'librbzmq'当我尝试使用运行我的测试

windows - 什么是好的跨平台音频处理库?

我正在寻找一个音频处理库,我可以用它在我的程序中进行一些即时音频编辑,例如转动一个旋钮,它会增加正在播放的音频文件的音调,而不会将更改保存到歌曲文件本身。我计划为windows和mac制作这个程序,所以我需要一个跨平台库。我没有太多闲钱,所以也不能花太多钱。如果有任何改变,我的程序将可以在市场上买到。在此先感谢您的帮助。 最佳答案 SoX位于http://sox.sourceforge.net/http://www.speech.kth.se/wavesurfer/处的Wavesurfer

c# - 在 Windows 上用 C# 加载 linux 动态库 (.so)

我正在使用swig为我的代码生成一个C#包装器。但是然后我还需要链接动态库,这是一个Linux.so文件。是否可以从C#执行此操作?谢谢编辑:在Windows上使用.so文件。 最佳答案 没有直接的方法可以做到这一点。您需要为所有native代码(so本身以及所有依赖项)创建nativeWindows版本。其他选项包括在Linux上编写所有代码,如果可能的话,包括C#部分(使用Mono)。或者创建某种客户端/服务器设置,其中您的native代码保留在Linux上(作为服务器应用程序),而您的C#代码在Windows客户端上运行。如果

c++ - 如何使用 Boost.Test 库处理整数除以零异常?

我正在使用Boost.Test针对一些旧的C数学库编写单元测试。已知的测试功能之一会引发某些指定输入的整数除以零系统异常。假设这是期望的行为,我想为这种情况编写负面测试。BOOST_REQUIRE_THROW(statement,exception);对我不起作用,因为它不是C++样式的异常(此宏在内部使用try{}catch{})。当我预计系统级别会出现故障时,正确的处理方法是什么? 最佳答案 因为它是Windows,我建议查看_set_se_translator()窗口API。它允许使用C++catch处理结构化异常。还有其他可

windows - 关于为 VS2008 组织跨平台库的最佳方式的任何建议

好的,我正在编写一个将在unix和windows之间分片的库。我整天都在使用unix,所以代码的布局没有问题。这就是我如何向使用VS2008的Windows人员展示它。自从我做windowsdev(咳嗽3.1)以来已经有很长时间了,所以脱节了。我注意到VS2008创建了很多目录和子目录(所有这些似乎都没有)。好吧,现在进入真正的问题-我认为cmake似乎是一个很好的简单便携解决方案-但是Windows人员包含库的说明呢。Unix人员通过命令行知道如何添加库-但是当您添加IDE时,这一切对我来说都变得(过于)复杂所以问题的核心是如何从顽固的unix人的角度为共享的unix/windows

c++ - 如何根据 cmake 中的配置类型更改库加载*路径*?

我有一个CMake项目,我想在其中链接正确的库(调试构建获取调试库;发布构建获取发布库),而无需手动覆盖。(例如,一旦cmake构建了msbuild位,我希望CMake生成的所有四个目标(调试、发布等)能够在不再次运行CMake的情况下构建)CMake文档(和otherthingsI'vefoundaboutthis)包含以下内容:SET(LINK_LIBRARYoptimizedFoodebugFoo_d)target_link_libraries(MyEXE${LINK_LIBRARY})但是,这会更改根据文件名链接的库。举例来说,我正在使用CMake中包含的Google测试位(F

c++ - 无法链接我自己的静态库

我正在尝试将声音库添加到Windows中的GLFW/OpenGL项目。我已将声音项目设置为输出静态库(.lib)。它编译得很好。在我的主项目中,我添加了对Sound的引用和对Sound的依赖(以更改构建顺序)。我在我的main.cpp中包含“..\Sound\sound.h”,Intellisense对一切都很满意。一切都编译得很好。但是,链接器很生气:1>Link:1>LINK:###\Projects\DeathRace\Debug\DeathRace.exenotfoundornotbuiltbythelastincrementallink;performingfulllink1

c++ - 将 ICU 作为静态库合并到 sqlite.dll 中

我想将ICU作为静态库合并到sqlite.dll中。是否有关于如何执行此操作的任何提示?我想最终得到一个带有SQLITE_ENABLE_ICU的sqlite.dll但没有进一步的依赖关系。目标平台是Windows和OSX。请帮忙!直接把代码合并到项目中也不是不行,只是这样会比较繁琐吗?不确定。 最佳答案 预建库可用here对于这些平台:AIX7.1(PowerPC64-bit)VisualAge11.1HP-UX11iv3(Itanium64-bit)RedHatEnterpriseLinux6(x8632-bit)gcc4.4.4