我需要在我的应用程序中使用一些针对msvcrt.dll编译的DLL。我已经试过了,好像好像是。我的第一个担心是对msvcrt.dll有额外的依赖性;我已经包括Visual Studio 10运行时库,并希望不必添加更多。我知道msvcrt.dll总是在窗口系统文件夹中,但我应该依靠这个吗?将针对msvcrt.dll编译的库链接到Visual Studio 10 C++应用程序中
以下是有关库页:
http://www.zlatkovic.com/libxml.en.html
我可以下载源代码并从头开始编译,可以这样做长期的,但现在我想,以确保不会有什么连接这些库和使用DLL的问题。
有该网页上一点,上面写着:。
“每一个程序编译使用这些二进制文件必须使用相同的运行时间,除非你喜欢你的应用程序崩溃,请设置您的项目使用MSVCRT.DLL如果您出于某种原因必须使用不同的运行时,那么您必须自己获取源代码并编译libxml和朋友。“
这就是我所担心的。它可能看起来是很好的时刻,但我担忧的时候是出于对具有不同设置其他系统野外会发生什么事..
+1指出所有DLL的最终依赖于msvcrt.dll – 2013-03-09 14:10:14
谢谢,这几乎涵盖了我的顾虑。关于内存分配和释放,是否可以使用库中包含的函数调用完成?在这种情况下,我从我的应用程序调用:xmlInitParser(),后来分别分配和释放内存的xmlCleanupParser()。 – Mark 2013-03-09 14:41:40
是的,如果DLL A调用释放内存的DLL B中定义的函数,那么内存是由DLL B发布,所以(假设B是分配它的人),你是免费的。 :)只要它通过这样的包装函数完成,你确保相同的DLL将执行这两个操作 – jalf 2013-03-09 14:46:35