问题-[Delphi]用LoadLibrary加载DLL时返回0的错误

问题现象:用LoadLibrary加载DLL一直返回0句柄,无法进行下一步操作,但同样的代码可以访问到别的DLL。
问题处理:
1.你加载的路径是不对的,一定要看好路径。
2.你是在虚拟机中操作的DLL,因为有的单位为了防破解,加了什么东东,在真机上可以用,虚拟机中就不行。
3.你加载的DLL同时访问了别的DLL或是文件,如果你的复制一个DLL到你的目录中是不行。必须复制所有的文件。

时间: 2024-10-09 18:22:28

问题-[Delphi]用LoadLibrary加载DLL时返回0的错误的相关文章

加载APK时提示app:transformClassesWithInstantRunForDebug错误

app:transformClassesWithInstantRunForDebug.  java.lang.Arrayindex.outof 之前从来没出现过这个问题,也没遇到过,突然出现不知道该如何办,不过在百度是看到一篇文章是这么解决的,就试了试,果然有效:file>setting>build\execution>Debugger>instant Run,把第一项的对勾去掉就可以了

LoadLibrary无法加载DLL解决思路

用LoadLibrary和GetProcAddress加载DLL时,可能会碰到LoadLibrary无法正确加载DLL,返回值总是NULL的情况.一般而言,可按下面的思路解决: (1)检查dll的路径是否正确. 可先用绝对路径试一下,若可以,那说明相对路径设置错了.简单的测试当面目录的方法就是随便写一个文件,比如std::ofstream outfile("test.txt"),然后看输出的test.txt文件在哪,就知道当前目录是哪了,然后依据它设置相对目录. (2)检查LoadLi

内存加载DLL

1.前言 目前很多敏感和重要的DLL(Dynamic-link library) 都没有提供静态版本供编译器进行静态连接(.lib文件),即使提供了静态版本也因为兼容性问题导致无法使用,而只提供DLL版本,并且很多专业软件的授权部分的API,都是单独提供一个DLL来完成,而主模块通过调用DLL中的接口来完成授权功能.虽然这些软件一般都采用了加壳和反调试等保护,但是一旦这些功能失去作用,比如脱壳,反反调试,HOOK API或者干脆写一个仿真的授权DLL(模拟授权DLL的所有导出函数接口),然后仿真

动态链接库知识点总结之三(如何以显示的方式加载DLL)

总结一下如何显示加载方式加载DLL, 首先,我们新建一个win32项目,选择dll,空项目,再添加一个源文件,一个模块定义文件(.def),具体如下图.(详细方法已经在前两篇文章中讲述,如有不懂,打开链接查看) (1)    新建项目,名称为:dll,添加一个源文件(.cpp),编代码,编译文件 . (2)    为项目添加一个模块定义文件(上一篇文章中详细介绍)(先新建一个文本,再改属性名),编辑代码,如下图 (3)    新建一个DLL测试应用程序(基于对话框的),项目名字:TestDLL,

qt加载dll

qt加载dll时 dll与qt项目编译器必须是同一个.同时qt用QLibrary方式是动态加载.就是如果你没有用到dll里面的东西它不会直接加载. const char* temp = "D:\\Users\\pautoenr.dll"; //HINSTANCE hDLL = LoadLibrary(L"D:\\Users\\myrootkit.dll"); QLibrary myLib("D:\\Users\\myrootkit.dll");

Delphi静态加载DLL和动态加载DLL示例

下面以Delphi调用触摸屏动态库xtkutility.dll为例子,说明如何静态加载DLL和动态加载DLL. 直接上代码. 1.静态加载示例 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) btnEnableTouch: TButton; btnDi

从内存中加载DLL DELPHI版

//从内存中加载DLL DELPHI版 unit MemLibrary; interface uses Windows; function memLoadLibrary(pLib: Pointer): DWord; function memGetProcAddress(dwLibHandle: DWord; pFunctionName: PChar): Pointer; stdcall; function memFreeLibrary(dwHandle: DWord): Boolean; imp

从内存中加载DLL Delphi版(转)

源:从内存中加载DLL DELPHI版 原文 : http://www.2ccc.com/article.asp?articleid=5784 MemLibrary.pas //从内存中加载DLL DELPHI版 unit MemLibrary; interface uses Windows; function memLoadLibrary(pLib: Pointer): DWord; function memGetProcAddress(dwLibHandle: DWord; pFunctio

动态链接库DLL的加载:隐式加载(载入时加载)和显式加载(运行时加载)

静态链接库在链接时,编译器会将 .obj 文件和 .LIB 文件组织成一个 .exe 文件,程序运行时,将全部数据加载到内存. 如果程序体积较大,功能较为复杂,那么加载到内存中的时间就会比较长,最直接的一个例子就是双击打开一个软件,要很久才能看到界面.这是静态链接库的一个弊端. 动态链接库有两种加载方式:隐式加载和显示加载. 隐式加载又叫载入时加载,指在主程序载入内存时搜索DLL,并将DLL载入内存.隐式加载也会有静态链接库的问题,如果程序稍大,加载时间就会过长,用户不能接受. 显式加载又叫运行