VC动态调用DLL

原创 2005年07月11日 13:19:00

1.生成DLL

CDLLApp theApp;
extern "C" _declspec(dllexport) int ADD(int i)
{
 AFX_MANAGE_STATE(AfxGetStaticModuleState());
 return ++i;

}

//////////////////////////////////////////////////////////////////////////////////////////////////////

extern "C" _declspec(dllexport) char* SendMess(char* buffer, int length)

{

////调用的时候要先给BUFFER分配内存(NEW())不然会出10014的错误.

10014--------------------系统检测到在一个调用中尝试使用指针参数时的无效指针地址。

}

////////////////////////////////////////////////////////////////////////////////////////////////////

2.动态调用DLL

void CTestDlg::OnBtest()
{
  
 UpdateData(true);
 

 typedef int(_cdecl *Connect)(int i);
 HINSTANCE hinstDLL=NULL;
 hinstDLL=LoadLibrary("TEST.dll");
 if (hinstDLL)
 {
  Connect Proc;
  Proc = (Connect)GetProcAddress (hinstDLL,"ADD");
  int iValue = Proc(m_i);
  FreeLibrary(hinstDLL);

 }
 else
 {
  AfxMessageBox("没找到dll");
 }
}

3.在DELPHL中的调用方法

procedure TForm1.Button1Click(Sender: TObject);
type
TIntFunc=function(i:integer):integer;stdcall;
var
Th:Thandle;
Tf:TIntFunc;
Tp:TFarProc;
begin
Th:=LoadLibrary('TEST.dll'); {装载DLL}
if Th>0 then
try
Tp:=GetProcAddress(Th,PChar('ADD'));
if Tp<>nil
then begin
Tf:=TIntFunc(Tp);
Edit1.Text:=IntToStr(Tf(1)); {调用TestC函数}
end
else
ShowMessage('ADD函数没有找到');
finally
FreeLibrary(Th); {释放DLL}
end
else
ShowMessage('TEST.dll没有找到');
end;

vc++ 调用外部dll的方法

调用DLL有两种方法:静态调用和动态调用. (一).静态调用其步骤如下: 1.把你的youApp.DLL拷到你目标工程(需调用youApp.DLL的工程)的Debug目录下; 2.把...
  • gaoszzzz
  • gaoszzzz
  • 2017-08-15 11:09:24
  • 1599

用vc++动态加载dll

 //同时该头文件也是动态调用动态连接库的比较合适的实   ////例,initCommDll()必须在调用扩展函数前调用//author liujinqiang          ////2006-...
  • ljq900
  • ljq900
  • 2007-05-19 17:08:00
  • 4140

VC三种动态调用dll方法

  • 2011年04月12日 15:10
  • 49KB
  • 下载

VC 动态调用DLL接口

//-------------IGDPrint.h文件代码 #ifndef _IGDPRINT_H_ #define _IGDPRINT_H_ //dll导出类 //dll跟其使用者共用的...
  • lys07962000
  • lys07962000
  • 2015-03-25 11:59:16
  • 500

VC++动态加载DLL例子

  • 2008年09月10日 17:16
  • 27KB
  • 下载

VC的DLL加载方法

 VC调用DLL2009年08月14日 星期五 下午 03:07调用DLL,首先需要将DLL文件映像到用户进程的地址空间中,然后才能进行函数调用,这个函数和进程内部一般函数的调用方法相同。Window...
  • yu444
  • yu444
  • 2009-10-26 10:21:00
  • 27974

动态调用方法

动态调用方法
  • bbb695480667
  • bbb695480667
  • 2017-03-08 13:40:55
  • 248

如何动态调用 C 函数

JSPatch 支持了动态调用 C 函数,无需在编译前桥接每个要调用的 C 函数,只需要在 JS 里调用前声明下这个函数,就可以直接调用: require('JPEngine').addExtens...
  • jiang314
  • jiang314
  • 2016-08-30 18:07:03
  • 952

【实例】动态调用方法,通过类名

个人感觉这个例子有点蛋疼,功能就是通过一个类的对象找到这个类,在通过这个类调用这个类中的方法。。。。如果要调用直接加个点加个方法名就好了嘛 不过感觉还是挺新奇的,就记下来看看吧。 首先先新建一个类...
  • u010513756
  • u010513756
  • 2015-12-25 21:49:44
  • 18077

动态调用与静态调用

动态调用与静态调用 最近学习了动态调用与静态调用的一些知识。哈哈。写一些心得体会。 首先讲一下库函数。所谓的库函数,就是很多函数的集合,实现各种功能的函数集中起来供程序调用。这...
  • lxh1230119
  • lxh1230119
  • 2012-07-31 10:10:03
  • 5967
收藏助手
不良信息举报
您举报文章:VC动态调用DLL
举报原因:
原因补充:

(最多只允许输入30个字)