草庐IT

dll丢失

全部标签

c++ - 从 C++ DLL 调用 Delphi 中的回调函数

我有一个我编写的C++DLL,它有一个公开的函数,它接受一个函数指针(回调函数)作为参数。#defineDllExportextern"C"__declspec(dllexport)DllExportboolRegisterCallbackGetProperty(bool(*GetProperty)(UINTobject_type,UINTobject_instnace,UINTproperty_identifer,UINTdevice_identifier,float*value)){//Dosomething.}我希望能够从Delphi应用程序中调用这个公开的C++DLL函数,并注

c++ - 将 std::ifstream 读取到行 vector 后,某些字节丢失

为了将我从输入文件读取的内容复制到vector,我使用了std::copy(),如Readinganstd::ifstreamtoavectoroflines中所推荐的那样.如果我使用会出现问题:std::copy(std::istream_iterator(inputfile),std::istream_iterator(),std::back_inserter(myVector));我的文件的第16个字节在myVector变量中丢失。但是如果我使用下面的代码:inputfile.read((char*)&myVector[0],sizeof(int)*getfilesize(nam

git 恢复丢失的代码

1.进入代码目录,打开gitBash,执行命令:gitreflog,可以查看到提交记录编号;可以看git库查看记录,看丢失的是那次提交的代码;2.执行命令:gitcherry-pickID ID就是记录编号;3.执行完提示一堆内容大概是跟本地代码有冲突。执行命令:gitstatus可以看到上次提交的那些文件。 4.进入工具eclipse,有冲突的话解决冲突文件,解决完成后就可以commitandpush.执行完上面的几个命令,下面红框的内容都已自动填充。直接提交就OK 

c# - p/从在 x64 机器上运行的 C# 程序调用 32 位 dll

我有一个C#程序,我在x64计算机上使用所有默认设置进行编译。我想p/调用一个我知道是32位(非托管)C++DLL的DLL。当我的C#程序在32位计算机而非64位计算机上运行时,我可以让它工作。如何在调用32位dll的DllImport调用中指定?我现在拥有的示例:[DllImport("test32bitdll.dll",SetLastError=true)]publicstaticexternvoidMyFunc();我没有test32bitdll.dll文件的源代码。 最佳答案 在64位进程中运行32位非托管代码是不可能的。或

c++ - 从 C 中用 C++ 开发的 DLL 调用函数

dll中的函数原型(prototype)如下voidFoo(intarg1,int&arg2);问题是,如何在C中声明函数原型(prototype)?声明是否合法?voidFoo(int,int*); 最佳答案 Isthedeclarationlegal?是的,但它没有声明相同的功能。如果您需要CAPI,则不能使用引用。坚持指针,并确保该函数具有C链接:extern"C"voidFoo(int,int*){//Functionbody}如果您无法修改DLL代码,则需要为其编写一个C++包装器,以公开适当的CAPI。

es.dll文件丢失导致程序无法运行问题

其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个es.dll文件(挑选合适的版本文件)把它放入到程序或系统目录中,当我们执行某一个.exe程序时,相应的DLL文件就会被调用,因此将缺失的文件放回到原目录之后就能打开你的软件或游戏了.那么出现es.dll丢失要怎么解决?一、手动从网站下载单个dll文件1、从下面列表下载es.dll文件32/64位文件:es.dll2、将下载的文件放入到你要运行的软件或者游戏的安装所在文件

.net - 从非托管 C++ 动态加载混合模式 C++/CLI .dll(和依赖项)

我有一个托管C++程序集,我正在通过标准LoadLibrary()调用在非托管C++应用程序中动态加载。托管C++程序集依赖于多个托管(C#)程序集。一切正常,直到我将所有托管程序集移动到非托管应用程序的子目录中。举例说明:托管C++.dll(MyCoolDll.dll)依赖于DotNetDll1.dll依赖于DotNetDll2.dll非托管C++应用(MyCoolApp.exe)通过LoadLibrary("MyCoolDll.dll")加载MyCoolDll.dll这工作正常,直到我将MyCoolDll.dll、DotNetDll1.dll和DotNetDll2.dll移动到/s

c# - 如果一个应用程序中的多个线程调用单个 DLL 会发生什么

我想知道当一个应用程序中的三个线程(几乎)同时从DLL调用一个静态方法时会发生什么。是否为每个线程加载了3个DLL实例,或者其他线程是否仅在第一个线程使用DLL静态方法完成后才能访问DLL(即,每个线程在轮到它时都可以访问DLL? 最佳答案 Arethere3instancesoftheDLLloaded,oneforeachthread?没有。DLL通常每个进程加载一次。(这里有一些微妙的问题;如果您使用Load和LoadFrom,同一个程序集可能会被加载两次。但这种情况很少见,并且没有任何影响与线程有关。)Dothesecond

c++ - MSVCP110.dll 丢失

我正在编写一个Sketchupruby​​插件,它调用一个使用VisualStudios2012版本11.0.51106.01构建的外部C++应用程序。另一台尝试使用该插件的机器收到有关缺少MSVCP110.dll的错误。他们已经尝试安装vcredist,但没有解决问题。有谁知道如何解决这个问题? 最佳答案 您需要安装正确的RedistributablePackage来自微软。请注意,您不能只使用其中的任何一个,您需要选择与您的特定版本的VisualStudio配套的那个。例如,该链接适用于VS2012SP1。如果您有其他版本,则需

c++ - cc1.exe 系统错误 - 缺少 libwinpthread-1.dll - 但它不是

我最近从Sourceforge下载了MinGW-w64到我的外部硬盘驱动器上,所有文件都位于:E:\mingw-w64\x86_64-4.9.2-posix-seh-rt_v3-rev1\mingw64\bin当我尝试在Windows8.1上使用gcc编译我的第一个“HelloWorld”程序时,我收到cc1.exe系统错误,它告诉我Theprogramcan'tstartbecauselibwinpthread-1.dllismissing.Tryreinstallingtheprogramtofixtheproblem.然而,libwinpthread-1.dll(它的全部54,7