大家好:
    程序打包时如何打包,我的想法:我在开发一个项目是关于多媒体的,故里面有本人呕心沥血处理的精美图片估计有[400多张位图少量的ico格式],但不想让我们的客户非法拷贝所有的资源,那我该怎么打包,或有什么专用的软件,可以将图片转换成什么编码之类的?请教,多谢了!----------------在线等待chuanke

解决方案 »

  1.   

    面的例子是一个纯资源DLL的源程序 
     
    纯资源的DLL就是只包含资源的DLL,例如:图标,位图,字符串,声音,视频,对话框等。使用纯资源DLL可以节约可执行文件的大小,可以被所有的应用程序所共享,从而提高系统性能。纯资源DLL的编写比普通的DLL要简单的多,首先创建一个WIN32 DLL工程,不是MFC的DLL,然后创建一个资源文件 *.RC,添加到资源DLL的工程中去。然后添加一个初始化DLL的原文件。 
     
     
    #include  
     
    extern "C" 
    BOOL WINAPI DllMain( HINSTANCE hInstance, DWORD dwReason, LPVOID ) 

    return 1; 

     
    这是纯资源DLL所必须需的代码,保存这个文件为*.CPP。编译这个资源DLL。 
     
    在应用程序显示的调用这个DLL,使用LoadLibrary函数装入资源DLL,FindResource和LoadResource来装入各种资源,或者使用下列的特定的资源装入函数: 
     
    FormatMessage 
    LoadAccelerators 
    LoadBitmap 
    LoadCursor 
    LoadIcon 
    LoadMenu 
    LoadString 
    当资源使用结束,你的应用程序须调用FreeLibrary函数来释放资源。 
     
    下面就讲一下如何调用编写好的资源DLL 
     
    首先在应用程序中声明一个DLL的句柄,HINSTANCE m_hLibrary;在OnCreate( )函数中调用LoadLirbrary( ),在OnDestory( )中调用FreeLibrary()。下载一个工程文件看一看,就什么都搞定了。 
      

  2.   

    free_card(痛并快乐着):您好!
    首先,对您表示感谢!能不能给出一个范例程序代码,看看
      

  3.   

    呵呵,把资源作成DLL就解决问题拉吗?你发个资源DLL来,只要你没加密,看哪个资源我不能帮你取出来?这类工具软件太多了。我做的绿叶考试系统(演示版:http://www.csdn.net/cnshare/soft/12/12854.shtm)就是使用的纯资源文件。但演示版中资源文件没加密,所以你不仅可以取出所有资源,还可以在没有我的原码的情况下,把里面的资源文件全部修改。把图片换成你的图片。关键是得把资源加密。绿叶考试系统正式版就是这样的。一些游戏软件也是这样做的。
      

  4.   

    shaohua(江上几人在,天涯孤棹还)
    把资源加密???说来听听!帮帮忙!
    楼上的!
      

  5.   

    shaohua(江上几人在,天涯孤棹还) 有道理
      

  6.   

    vc本身就能把dll里的资源提取出来,我劝你还是不要在这方面下功夫了,小气鬼!!!
      

  7.   

    我用installshield打过包,搞得还比较深,我觉得你在里面加上序列号的功能,当然本身project也要加密,这样的话你的图片别人是不能获取的。即使他有一些工具针对installshield的project.至于用纯资源DLL解决,我个人感觉不行。
      

  8.   

    leehq(没有读过高中的人):怎么说我是小气呢?我们的客户可不是一般!同行之间就不得了了,要是不这样的话!我也没办法,对我个人而言到没什么,但对公司和知识产权问题,那可问题就大了,你说呢?
      

  9.   

    既然如此,还有一个办法。用dll是不行的,因为人家只要有一套vc就能够打开dll或exe里的资源。
    所以你只有将这些图片用自己的格式存为文件,在程序中提取后转换为位图数据,当然不能再用资源的形式了...
      

  10.   

    用资源dll和放在资源里都不行,随便找一个图标提取工具,就可以将你的图标提取出来。关键还是要加密
      

  11.   

    呵呵, 用snagIt, 或者直接print screen, 啥东西不能截取啊!
    除非你根本不显示界面.做到资源加密已经够了. 没必要花太多力气.