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

VC书籍

开发平台:

C++ Builder

  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #pragma hdrstop
  4. //---------------------------------------------------------------------------
  5. //   Important note about DLL memory management when your DLL uses the
  6. //   static version of the RunTime Library:
  7. //
  8. //   If your DLL exports any functions that pass String objects (or structs/
  9. //   classes containing nested Strings) as parameter or function results,
  10. //   you will need to add the library MEMMGR.LIB to both the DLL project and
  11. //   any other projects that use the DLL.  You will also need to use MEMMGR.LIB
  12. //   if any other projects which use the DLL will be perfomring new or delete
  13. //   operations on any non-TObject-derived classes which are exported from the
  14. //   DLL. Adding MEMMGR.LIB to your project will change the DLL and its calling
  15. //   EXE's to use the BORLNDMM.DLL as their memory manager.  In these cases,
  16. //   the file BORLNDMM.DLL should be deployed along with your DLL.
  17. //
  18. //   To avoid using BORLNDMM.DLL, pass string information using "char *" or
  19. //   ShortString parameters.
  20. //
  21. //   If your DLL uses the dynamic version of the RTL, you do not need to
  22. //   explicitly add MEMMGR.LIB as this will be done implicitly for you
  23. //---------------------------------------------------------------------------
  24. //USEDEF("mydll.def");
  25. //---------------------------------------------------------------------------
  26. extern "C" __declspec(dllexport) __stdcall int mycalc(int,int);
  27. extern "C" __declspec(dllexport) __stdcall void myte(void);
  28. extern "C" __declspec(dllexport) __stdcall int myfunc(int,int);
  29. int add(int n1,int n2);
  30. //---------------------------------------------------------------------------
  31. int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*)
  32. {
  33.         return 1;
  34. }
  35. //---------------------------------------------------------------------------
  36. __declspec(dllexport) __stdcall void myte(void)
  37. {
  38.   ShowMessage("OK this is DLL");
  39. }
  40. //---------------------------------------------------------------------------
  41. __declspec(dllexport) __stdcall int myfunc(int n1,int n2)
  42. {
  43.   int aa;
  44.   aa=add(n1,n2);
  45.   return aa;
  46. }
  47. //---------------------------------------------------------------------------
  48. __declspec(dllexport) __stdcall int mycalc(int n1,int n2)
  49. {
  50.   return n1*n2;
  51. }
  52. //---------------------------------------------------------------------------
  53. int add(int n1,int n2)
  54. {
  55.   return n1+n2;
  56. }
  57. //---------------------------------------------------------------------------