tedll.cpp

来自「有视频」· C++ 代码 · 共 72 行

CPP
72
字号
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
extern "C" __declspec(dllexport) __stdcall int mycalc(int,int);
extern "C" __declspec(dllexport) __stdcall void myte(void);
extern "C" __declspec(dllexport) __stdcall int myfunc(int,int);
int add(int n1,int n2);
//---------------------------------------------------------------------------
//   Important note about DLL memory management when your DLL uses the
//   static version of the RunTime Library:
//
//   If your DLL exports any functions that pass String objects (or structs/
//   classes containing nested Strings) as parameter or function results,
//   you will need to add the library MEMMGR.LIB to both the DLL project and
//   any other projects that use the DLL.  You will also need to use MEMMGR.LIB
//   if any other projects which use the DLL will be perfomring new or delete
//   operations on any non-TObject-derived classes which are exported from the
//   DLL. Adding MEMMGR.LIB to your project will change the DLL and its calling
//   EXE's to use the BORLNDMM.DLL as their memory manager.  In these cases,
//   the file BORLNDMM.DLL should be deployed along with your DLL.
//
//   To avoid using BORLNDMM.DLL, pass string information using "char *" or
//   ShortString parameters.
//
//   If your DLL uses the dynamic version of the RTL, you do not need to
//   explicitly add MEMMGR.LIB as this will be done implicitly for you
//---------------------------------------------------------------------------
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*)
{
  switch(reason)
  {
    case DLL_PROCESS_ATTACH:
      ShowMessage("DLL_PROCESS_ATTACH");
      break;
    case DLL_THREAD_ATTACH:
      ShowMessage("DLL_THREAD_ATTACH");
      break;
    case DLL_THREAD_DETACH:
      ShowMessage("DLL_THREAD_DETACH");
      break;
    case DLL_PROCESS_DETACH:
      ShowMessage("DLL_PROCESS_DETACH");
      break;
    default:
      break;
  }
        return 1;
}
//---------------------------------------------------------------------------
__declspec(dllexport) __stdcall void myte(void)
{
  ShowMessage("OK this is DLL");
}
//---------------------------------------------------------------------------
__declspec(dllexport) __stdcall int myfunc(int n1,int n2)
{
  int aa;
  aa=add(n1,n2);
  return aa;
}
//---------------------------------------------------------------------------
__declspec(dllexport) __stdcall int mycalc(int n1,int n2)
{
  return n1*n2;
}
//---------------------------------------------------------------------------
int add(int n1,int n2)
{
  return n1+n2;
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?