zoukankan      html  css  js  c++  java
  • Visual C++ 2010 Express下使用WTL

    下载WTL和VCX2010之类就不再赘述了,假设已经VCX2010已经安装,WTL已经解压好,以下都以TabBrowser例子来说明。

    因为WTL是基于ATL的,而免费的VCX2010并不包括ATL,所以第一个问题就是如何获取最新且合法的ATL代码,注意是“合法的”,类似这篇帖子里面的方法还是不要考虑了,至于用老旧的Platform SDK的方法,当然也不考虑,因为不是最新的,要同时满足上面两个条件,最好的方法就是去下载最新的WDK,在WDK里面包含了atl71,安装好就ok了。

    编译例子会碰到提示

    1. fatal error C1083: 无法打开包括文件:“atlbase.h”: No such file or directory

    很好办,添加atl71的路径到附加包含目录就行了

    2. error C2065: “_stdcallthunk”: 未声明的标识符
        error C2070: “'unknown-type'”: 非法的 sizeof 操作数
    因为新ATL库修改了_stdcallthunk的定义位置,所以要把atlstdthunk.h包含进来,像这样:


    #include <atlbase.h>
    #include <atlstdthunk.h>

    3. fatal error C1083: 无法打开包括文件:“atlapp.h”: No such file or directory

    没什么好说的,继续包含WTL的头文件进来。

    4. fatal error RC1015: cannot open include file 'atlres.h'.

    这个问题倒是头次遇到,连资源头文件也要包含进来,项目属性->资源->常规->附件包含目录。

    最后再添加库文件的目录到附件库目录就OK了,32位系统当然是选\lib\ATL\i386,编译OK。

    等等,还有这一堆警告怎么办?

    1>------ 已启动生成: 项目: TabBrowser, 配置: Debug Win32 ------
    1>atlsd.lib(atlcommodule.obj) : warning LNK4078: 找到多个“ATL”节,它们具有不同的特性(40301040)
    1>stdafx.obj : warning LNK4254: 节“ATL”(50000040)合并到具有不同特性的“.rdata”(40000040)
    1>TabBrowser.obj : warning LNK4254: 节“ATL”(50000040)合并到具有不同特性的“.rdata”(40000040)
    1>atlsd.lib(externs.obj) : warning LNK4254: 节“ATL”(50000040)合并到具有不同特性的“.rdata”(40000040)
    1>atlsd.lib(atldebugapi.obj) : warning LNK4254: 节“ATL”(50000040)合并到具有不同特性的“.rdata”(40000040)
    1>atlsd.lib(atltrace.obj) : warning LNK4254: 节“ATL”(50000040)合并到具有不同特性的“.rdata”(40000040)
    1>atlsd.lib(atlbase.obj) : warning LNK4254: 节“ATL”(50000040)合并到具有不同特性的“.rdata”(40000040)
    1>atlsd.lib(atlcommodule.obj) : warning LNK4254: 节“ATL”(50000040)合并到具有不同特性的“.rdata”(40000040)
    1>atlsd.lib(atlfuncs.obj) : warning LNK4254: 节“ATL”(50000040)合并到具有不同特性的“.rdata”(40000040)
    1>atlsd.lib(stdafx.obj) : warning LNK4254: 节“ATL”(50000040)合并到具有不同特性的“.rdata”(40000040)
    1>atlsd.lib(allocate.obj) : warning LNK4254: 节“ATL”(50000040)合并到具有不同特性的“.rdata”(40000040)
    1>atlsd.lib(atltracemodulemanager.obj) : warning LNK4254: 节“ATL”(50000040)合并到具有不同特性的“.rdata”(40000040)

    充耳不闻不是好态度,原因是因为VCX2010默认不使用ATL,把项目属性->常规->ATL的使用改掉就好,静态还是动态就看实际需要了。

    好了,整个世界清净了,打完收工,谢谢观看。

  • 相关阅读:
    Javaweb之 servlet 开发具体解释1
    struts2_6_多个struts配置文件的应用
    PHP多种序列化/反序列化的方法
    CF459C Pashmak and Buses 打印全排列
    HDOJ 题目3564 Another LIS(线段树单点更新,LIS)
    Android UI开发第四十三篇——使用Property Animation实现墨迹天气3.0引导界面及动画实现
    [ACM] HDU 1533 Going Home (二分图最小权匹配,KM算法)
    POJ 3895 Cycles of Lanes (dfs)
    【iOS开发-51】案例学习:动画新写法、删除子视图、视图顺序、延迟方法、button多功能使用方法及icon图标和启动页设置
    iOS-代理托付的使用
  • 原文地址:https://www.cnblogs.com/s5689412/p/2025151.html
Copyright © 2011-2022 走看看