Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > C/C++ > 如何用DLL最简单地保护您的工程代码
【标  题】:如何用DLL最简单地保护您的工程代码
【关键字】:DLL
【来  源】:http://blog.csdn.net/qiqihua/archive/2007/02/08/1505787.aspx

如何用DLL最简单地保护您的工程代码

Your Ad Here
转贴自
 http://www.vcsoft.org/bbs/dispbbs.asp?boardid=16&id=123

背景:
    在VB下可以把一个工程编译成DLL导出在别的VB工程中使用,那么VC怎么能轻松地把自己所需要的部分导出呢?

需求:
    1, 现有一已完工的VC6工程。
    2, 客户利用关系强求源代码。
    3, 有什么办法把其中绝大部分类封装成DLL?
    4, 最好改动不要很大。

解决方法:
    1, 在原工作区建一个扩展DLL工程。把生成文件路径指定为原工程文件路径,这样编译后不用拷贝DLL文件
    2,  在DLL工程的DLL.h中定义:
#ifdef GUILIB_IMPL
    #define GUILIB_EXT_CLASS  _declspec( dllexport )
    #define GUILIB_EXT_API    _declspec( dllexport )
#else
    #define GUILIB_EXT_CLASS  _declspec( dllimport )
    #define GUILIB_EXT_API    _declspec( dllimport )
#endif

    3, 在原工程中的StdAfx.h中定义如下宏:
#define USE_DLL

#ifdef USE_DLL
    #include "Dll\\Dll.h"
#else
    #define GUILIB_EXT_CLASS  
    #define GUILIB_EXT_API    
#endif

    4, 在你的原工程的所有文件中需要导出的类或函数前加一个宏,形如:
class GUILIB_EXT_CLASS CDllLoader//类
void GUILIB_EXT_API InitGuiLibDLL();//函数

    5, 在DLL工程中加入你希望导出的文件,注意,不是复制一份,而就用原来工程的.这样你可以修改你的EXE,而新的DLL仅重新编译一遍就好了,不用维护两份代码.

具体参考例子程序。

总结:
    上述方法简单,可以实现工程开发时用源代码,在需要导出的时候仅需要编译一下DLL工程即可。而在使用时,如果您的工程中加入了导出类的实现文件,就是用的实现文件,如果把实现文件从工程中导出就是用的DLL中导出的类。用起来感觉比较方便。

仿基因编程要点及其C++实现:【上一篇】
do...while(0)的妙用:【下一篇】
【相关文章】
  • 如何生成代理/存根dll
  • VC调用Delphi写的dll的一个问题的处理
  • Rundll32使用技巧 使用Shell打开选择文件对话框以及其它
  • 由于dll导致的奇异CRASH
  • spoolsvv.exe,cmdbcs.exe,WINLOGON.EXE,Svchost.dll威金
  • DLLs in Kernel Mode
  • Execute a function in any Win32 DLL - Reflection in Win32 DLL?
  • 对Windows 2000中wkssvc.dll中某个函数的分析
  • Midas.dll打包问题
  • 如何查看部署到SHAREPOINT 中的DLL的PublicKeyToken值
  • 【随机文章】
  • [-Tapestry3-] PropertySelection组件如何设置的value初始值
  • a good c
  • LINUX下MYSQL+APACHE+PHP
  • to install perl in eclipse
  • 3G核心网技术路线选择
  • Oracle 9i管理的用户
  • Microsoft TechNet视频大全!!(全部免费下载哦~~)
  • 杀出血路的屏蔽系统-综合布线屏蔽系统的现状与应用(1)
  • 什么是硬盘扇区
  • Windows Media 9学习笔记(一)--术语了解
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.