天天看點

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頭檔案。

      Debug模式和Release模式下運作不同代碼的方法
      #include "stdafx.h"
      Debug模式和Release模式下運作不同代碼的方法
      #include "DLLSample.h"
      Debug模式和Release模式下運作不同代碼的方法
      Debug模式和Release模式下運作不同代碼的方法
      #pragma comment(lib, "DLLSample.lib")    //你也可以在項目屬性中設定庫的連結
      Debug模式和Release模式下運作不同代碼的方法
      Debug模式和Release模式下運作不同代碼的方法
      int main()
      Debug模式和Release模式下運作不同代碼的方法
      {
      Debug模式和Release模式下運作不同代碼的方法
              TestDLL(123);   //dll中的函數,在DllSample.h中聲明
      Debug模式和Release模式下運作不同代碼的方法
              return(1);
      Debug模式和Release模式下運作不同代碼的方法

      }    

      (2)顯式連結

      需要函數指針和WIN32 API函數LoadLibrary、GetProcAddress裝載,使用這種載入方法,不需要.lib檔案和.h頭檔案,隻需要.dll檔案即可(将.dll檔案置入工程目錄中)。

      Debug模式和Release模式下運作不同代碼的方法
      #include <iostream>
      Debug模式和Release模式下運作不同代碼的方法
      #include <windows.h>         //使用函數和某些特殊變量
      Debug模式和Release模式下運作不同代碼的方法
      typedef void (*DLLFunc)(int);
      Debug模式和Release模式下運作不同代碼的方法
      int main()
      Debug模式和Release模式下運作不同代碼的方法
      {
      Debug模式和Release模式下運作不同代碼的方法
              DLLFunc dllFunc;
      Debug模式和Release模式下運作不同代碼的方法
              HINSTANCE hInstLibrary = LoadLibrary("DLLSample.dll");
      Debug模式和Release模式下運作不同代碼的方法
      Debug模式和Release模式下運作不同代碼的方法
              if (hInstLibrary == NULL)
      Debug模式和Release模式下運作不同代碼的方法
              {
      Debug模式和Release模式下運作不同代碼的方法
                FreeLibrary(hInstLibrary);
      Debug模式和Release模式下運作不同代碼的方法
              }
      Debug模式和Release模式下運作不同代碼的方法
              dllFunc = (DLLFunc)GetProcAddress(hInstLibrary, "TestDLL");
      Debug模式和Release模式下運作不同代碼的方法
              if (dllFunc == NULL)
      Debug模式和Release模式下運作不同代碼的方法
              {
      Debug模式和Release模式下運作不同代碼的方法
                FreeLibrary(hInstLibrary);
      Debug模式和Release模式下運作不同代碼的方法
              }
      Debug模式和Release模式下運作不同代碼的方法
              dllFunc(123);
      Debug模式和Release模式下運作不同代碼的方法
              std::cin.get();
      Debug模式和Release模式下運作不同代碼的方法
              FreeLibrary(hInstLibrary);
      Debug模式和Release模式下運作不同代碼的方法
              return(1);
      Debug模式和Release模式下運作不同代碼的方法
      }

轉載于:https://www.cnblogs.com/ShiShouTHS/p/11481167.html