Unit1.cpp
上传用户:lhxd_sz
上传日期:2014-10-02
资源大小:38814k
文件大小:2k
源码类别:

VC书籍

开发平台:

C++ Builder

  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #pragma hdrstop
  4. #include "Unit1.h"
  5. //---------------------------------------------------------------------------
  6. #pragma package(smart_init)
  7. #pragma resource "*.dfm"
  8. TForm1 *Form1;
  9. int __stdcall (*mycalc)(int,int);
  10. int __stdcall (*myfunc)(int,int);
  11. void __stdcall (*myte)(void);
  12. HINSTANCE hComm;
  13. //---------------------------------------------------------------------------
  14. __fastcall TForm1::TForm1(TComponent* Owner)
  15.         : TForm(Owner)
  16. {
  17.   hComm=LoadLibrary("MyDll.dll");
  18. }
  19. //---------------------------------------------------------------------------
  20. void __fastcall TForm1::Button1Click(TObject *Sender)
  21. {
  22.   int nn;
  23.   FARPROC lpFarProc;
  24.   if(hComm!=NULL)
  25.   {
  26. //
  27.     lpFarProc = GetProcAddress(hComm,"myfunc");
  28.     if(lpFarProc==NULL)
  29.       ShowMessage("myfunc Error");
  30.     else
  31.     {
  32.       myfunc = (int __stdcall (__cdecl*)(int, int))lpFarProc; //指针类型转换
  33.       nn=myfunc(12,10);
  34.       Edit1->Text=IntToStr(nn);
  35.     }
  36.     lpFarProc = GetProcAddress(hComm,"mycalc");
  37.     if(lpFarProc==NULL)
  38.       ShowMessage("mycalc Error");
  39.     else
  40.     {
  41.       mycalc = (int __stdcall (__cdecl*)(int, int))lpFarProc; //指针类型转换
  42.       nn=mycalc(12,10);
  43.       Edit2->Text=IntToStr(nn);
  44.     }
  45. //
  46.     lpFarProc = GetProcAddress(hComm,"myte");
  47.     if(lpFarProc==NULL)
  48.       ShowMessage("FarProc Error");
  49.     else
  50.     {
  51.       myte = (void __stdcall (__cdecl*)(void))lpFarProc; //指针类型转换
  52.       myte();
  53.     }
  54.   }
  55.   else
  56.     ShowMessage("lib Error");
  57. }
  58. //---------------------------------------------------------------------------
  59. void __fastcall TForm1::FormDestroy(TObject *Sender)
  60. {
  61.   FreeLibrary(hComm);
  62. }
  63. //---------------------------------------------------------------------------