我们使用CMake在我们的SVN中生成源代码的Visual Studio文件。 现在我的工具需要一些DLL文件与可执行文件在同一个文件夹中。 DLL文件位于源文件夹旁边。 我怎样才能改变我的CMakeLists.txt ,使生成的Visual Studio项目已经在释放/debugging文件夹中的特定DLL文件,或将编译时复制它们?
我应该重新分配msvcrt.dll与我的应用程序,并使用私人DLL如果一些应用程序的库dynamic依赖msvcrt.dll? 即与系统的msvcrt.dll(DLL地狱)可能的任何不兼容问题? 应用程序是针对Windows Server系统的。
我读了一些文章,不鼓励使用DYLD_LIBRARY_PATH,因为dynamic库的path应该使用-install_name,@rpath和@loader_path来修复。 在制作一个在Linux和Mac OS X上运行的程序,Mac OS X的DYLD_LIBRARY_PATH正是Linux的LD_LIBRARY_PATH。 而且,我们可以共享(几乎)相同的没有-install_name和@rpath的make文件。 可以在Mac OS X上使用DYLD_LIBRARY_PATH吗? 当二进制找不到dynamic库时,什么是使用Mac OS X的dynamic库searchalgorithm? 当前目录 – > DYLD_LIBRARY_PATH目录…?
我无法让LibCurl使用Visual Studio 2013.我下载了当前版本(curl-7.33.0)并尝试按照我在此网站上find的说明操作: 在Visual 2010中使用LibCurl 但是我在我下载的文件夹中找不到curllib.lib 。 而我仍然遇到错误: 在search互联网寻求更多的帮助。 我现在得到这些错误消息。 链接到libcurl.lib似乎有问题? 这是我configuration的: 里面/ lib我有libcurl.lib和libcurl.dll UPDATE 我为Win32 MSVC下载了这个版本: http : //curl.haxx.se/download.html#Win32添加libcurl库并成功编译后,我现在得到这个错误信息: The application was unable to start correctly (0xc000007b). Click OK to close the application. 这里是我试图运行的示例代码: #include <iostream> #include <stdio.h> #include <curl/curl.h> int main(void) { CURL *curl; CURLcode res; curl = curl_easy_init(); if (curl) { curl_easy_setopt(curl, […]
我认为这个问题在我的C ++函数中,但是我尝试了这个 在C ++中的C ++函数dll: bool __declspec( dllexport ) OpenA(std::string file) { return true; } C#代码: [DllImport("pk2.dll")] public static extern bool OpenA(string path); if (OpenA(@"E:\asdasd\")) 我得到一个例外,内存是腐败的,为什么? 如果我删除std :: string参数,它工作得很好,但与std ::string不起作用。
我的大部分C / C ++开发都涉及单片模块文件,绝对没有任何类,所以通常当我需要使用可访问的函数创build一个DLL时 ,我只需使用标准的__declspec(dllexport)指令导出它们。 然后通过LoadLibrary()或者在编译时使用头文件和lib文件来dynamic访问它们。 当你想要导出整个类(以及所有的公共方法和属性)时,你如何做到这一点? 是否有可能在运行时dynamic加载该类,如果是这样,如何? 你怎么用一个头文件和lib来编译链接?
可能重复: 如何判断.NET应用程序是以DEBUG还是RELEASE模式编译? 我确信之前已经问过这个问题,但谷歌和SOsearch失败了我。 我怎样才能确定一个DLL是一个发布版本或debugging版本?
我有一个用c ++编写的dll,我需要在我的c#代码中使用这个dll。 search后,我发现使用P / Invoke会给我访问我需要的函数,但是这些函数是在类中定义的,并使用非静态的私有成员variables。 所以我需要能够创build这个类的一个实例来正确使用这个函数。 我怎样才能访问这个类,以便我可以创build一个实例? 我一直无法find办法做到这一点。 我想我应该注意到,C + + DLL不是我的代码。
我有一个情况,我有一个DLL我创build使用另一个第三方DLL,但我宁愿能够build立第三方DLL到我的DLL,而不是必须保持在一起,如果可能的话。 这与C#和.NET 3.5。 我想这样做的方式是将第三方DLL作为embedded式资源存储,然后在执行第一个DLL期间放置在适当的位置。 我原本计划这样做的方法是编写代码将第三方DLL放在由System.Reflection.Assembly.GetExecutingAssembly()。Location.ToString()减去最后一个/nameOfMyAssembly.dll指定的位置。 我可以成功地将第三方.DLL保存在此位置(最终(C:\ Documents and Settings \ myUserName \ Local Settings \ Application Data \ assembly \ dl3 \ KXPPAX6Y.ZCY \ A1MZ1499.1TR \ e0115d44 \ 91bb86eb_fe18c901)),但是当我到达需要这个DLL的代码部分时,它找不到它。 有没有人有任何想法,我需要做什么不同?
我知道.NET框架在几个位置查找引用的DLL 全局程序集caching(GAC) 任何私人path添加到AppDomain 执行程序集的当前目录 这些地点search的顺序是什么? 如果find一个匹配项,就停止search一个DLL,或者通过所有位置继续search(如果是的话,如何解决冲突)? 另外,请确认或否认这些地点,并提供我没有提及的任何其他地点。