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头文件。html

      #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文件置入工程目录中)。ios

      #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);
      }
相关文章
相关标签/搜索