热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

#ifdef_DEBUG#else#endif#ifdef_DEBUG#pragmacomment(lib,..\\debug\\LedCtrlBoard.lib)#else#
    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 
      #include          //使用函数和某些特殊变量
      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);
      }

转:https://www.cnblogs.com/ShiShouTHS/p/11481167.html



推荐阅读
author-avatar
AIHFKYH_986
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有