Debug模式和Release模式下运行不同代码的方法

    1. #ifdef _DEBUG
       
        #else
       
      # endif
       
      #ifdef _DEBUG
      #pragma comment(lib,"..\\debug\\LedCtrlBoard.lib")
      #else
      #pragma comment(lib,"..\\release\\LedCtrlBoard.lib")
      #endif
       
      转自:http://www.cppblog.com/amazon/archive/2009/09/04/95318.html
       
       
       
      (1)隐式链接

      第一种方法是:通过project->link->Object/Library Module中加入.lib文件(或者在源代码中加入指令#pragma comment(lib, “Lib.lib”)),并将.dll文件置入工程所在目录,然后添加对应的.h头文件。

      #include "stdafx.h"
      #include "DLLSample.h"

      #pragma comment(lib, "DLLSample.lib")    //你也可以在项目属性中设置库的链接

      int main()
      {
              TestDLL(123);   //dll中的函数,在DllSample.h中声明
              return(1);
      }
       
       

      (2)显式链接
      需要函数指针和WIN32 API函数LoadLibrary、GetProcAddress装载,使用这种载入方法,不需要.lib文件和.h头文件,只需要.dll文件即可(将.dll文件置入工程目录中)。

      #include <iostream>
      #include <windows.h>         //使用函数和某些特殊变量
      typedef void (*DLLFunc)(int);
      int main()
      {
              DLLFunc dllFunc;
              HINSTANCE hInstLibrary = LoadLibrary("DLLSample.dll");

              if (hInstLibrary == NULL)
              {
                FreeLibrary(hInstLibrary);
              }
              dllFunc = (DLLFunc)GetProcAddress(hInstLibrary, "TestDLL");
              if (dllFunc == NULL)
              {
                FreeLibrary(hInstLibrary);
              }
              dllFunc(123);
              std::cin.get();
              FreeLibrary(hInstLibrary);
              return(1);
      }

猜你喜欢

转载自www.cnblogs.com/ShiShouTHS/p/11481167.html