WxAdoInterface.cpp 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. // WxAdoInterface.cpp: 定义 DLL 的初始化例程。
  2. //
  3. #include "stdafx.h"
  4. #include "WxAdoInterface.h"
  5. #include "IWxAdoInterface.h"
  6. #include "WxAdoImpl.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #endif
  10. //
  11. //TODO: 如果此 DLL 相对于 MFC DLL 是动态链接的,
  12. // 则从此 DLL 导出的任何调入
  13. // MFC 的函数必须将 AFX_MANAGE_STATE 宏添加到
  14. // 该函数的最前面。
  15. //
  16. // 例如:
  17. //
  18. // extern "C" BOOL PASCAL EXPORT ExportedFunction()
  19. // {
  20. // AFX_MANAGE_STATE(AfxGetStaticModuleState());
  21. // // 此处为普通函数体
  22. // }
  23. //
  24. // 此宏先于任何 MFC 调用
  25. // 出现在每个函数中十分重要。 这意味着
  26. // 它必须作为以下项中的第一个语句:
  27. // 出现,甚至先于所有对象变量声明,
  28. // 这是因为它们的构造函数可能生成 MFC
  29. // DLL 调用。
  30. //
  31. // 有关其他详细信息,
  32. // 请参阅 MFC 技术说明 33 和 58。
  33. //
  34. // CWxAdoInterfaceApp
  35. BEGIN_MESSAGE_MAP(CWxAdoInterfaceApp, CWinApp)
  36. END_MESSAGE_MAP()
  37. // CWxAdoInterfaceApp 构造
  38. CWxAdoInterfaceApp::CWxAdoInterfaceApp()
  39. {
  40. // TODO: 在此处添加构造代码,
  41. // 将所有重要的初始化放置在 InitInstance 中
  42. }
  43. // 唯一的 CWxAdoInterfaceApp 对象
  44. CWxAdoInterfaceApp theApp;
  45. // CWxAdoInterfaceApp 初始化
  46. BOOL CWxAdoInterfaceApp::InitInstance()
  47. {
  48. CWinApp::InitInstance();
  49. ::CoInitialize(NULL);//初始化COM环境
  50. return TRUE;
  51. }
  52. extern "C" IWxAdoInterface* PASCAL EXPORT CreateWxAdoPoolInstance()
  53. {
  54. AFX_MANAGE_STATE(AfxGetStaticModuleState());
  55. // 此处为普通函数体
  56. IWxAdoInterface *pInstance = CWxAdoImpl::GetInstance();
  57. if (pInstance != NULL)
  58. pInstance->AddRef();
  59. return pInstance;
  60. return NULL;
  61. }
  62. int CWxAdoInterfaceApp::ExitInstance()
  63. {
  64. // TODO: 在此添加专用代码和/或调用基类
  65. ::CoUninitialize();
  66. return CWinApp::ExitInstance();
  67. }