http://topic.csdn.net/t/20041208/15/3626852.html
http://topic.csdn.net/t/20050713/18/4142555.html
在做一个带资源的静态库,搜了几篇帖子,发现一个叫DentistryDoctor的高手说的有戏,不知道人还在不在,05年的帖子啊,详细说明一下,怎样连接两个res文件呢?

解决方案 »

  1.   

    静态库就是一堆OBJ,何来链接RES之说
      

  2.   

    你看看你的头文件里面,肯定用到DLL里面资源的ID了
      

  3.   

    还真找到方法了。。
    1. 找到你static library中Debug或Release临时文件夹,应该有xx.res文件,这是你的rc编译之后生成的
    2. 使用VC自带的命令行工具cvrres将此res文件转成一个obj
    3. 转到你的EXE工程下,将obj直接添加到源文件中或者命令行手工linkString Table Resource测试通过。
      

  4.   

    同样可以直接把res添加到你EXE工程中
      

  5.   

    大致看了一下,静态库可以认为是一堆打包的源文件,被编译到什么模块中则就在什么模块中。
    假设静态库为a.lib 资源为 r.res 最终生成c.exe
    则只能在c工程里,调用a.lib中的接口,传入当前的资源所在模块句柄,如果总是确定res被编译到exe中,则可以在lib中写死取当前运行模块的句柄。每一个win 32可执行程序在vc中编译时,主要由3部份构成,源码、lib文件、rc文件
    源码最终编为.obj文件,lib是编译好的obj的集合包(也有可能是dll的导出函数,考虑你的情况为静态包),rc被编为res文件,
    然后通过link把这3者链结为一个可执行文件。
    如link a.obj b.obj c.lib d.lib e.res f.res
      

  6.   

    使用VS2008
    试过将res转成的obj手工命令行lib到static library中,EXE再去依赖static library,发现找不到资源
      

  7.   

    使用VS2008
    试过将res转成的obj手工命令行lib到static library中,EXE再去依赖static library,发现找不到资源
      

  8.   

    res跟lib一样,在连接选项的附加库中指定,用空格分开。例如:
    Test.lib Test.res
      

  9.   

    cvrres是什么东西,我的vs文件夹下没有搜索到这个程序,麻烦详细说明一下,如果有示例工程希望能发一份到我邮箱,多谢
    [email protected]楼上cnzdgs说的直接添加.res文件到Link我试过,会出现一个连接警告
    Linker Tools Warning LNK4059
    resourcefile already specified; additional resource file ignored
    Only one resource file is allowed. The first .RES file specified in the command was used.
    结果还是找不到资源,可以链接两份res文件吗?