zoukankan      html  css  js  c++  java
  • 转:VS2005 & VS2008 对C++转换中问题总结

    1、转换VS6.0

    学习 ATL,看到 http://www.codeproject.com/shell/shellextguide1.asp,测试了一下,发现 VC6 编译通过,VC8 在 COM_INTERFACE_ENTRY(IContextMenu) 处提示错误:no GUID has been associated with this object

    其实上面 URL 的文章,已经给出解决方案了,就是升级 Platform SDK,并把 $(VCInstallDir)PlatformSDK\include 放在 Include 目录第一位,或者不放第一也至少要在 ($VCInstallDir)include 前面!

    我自己发现的一个办法是,加一句定义:

    struct __declspec(uuid("000214E4-0000-0000-C000-000000000046")) IContextMenu;

    还有第三个解决办法:不要用 COM_INTERFACE_ENTRY(IContextMenu),换成 COM_INTERFACE_ENTRY_IID(IID_IContextMenu, IContextMenu),同时要 #include <shlguid.h>

    当然第一种方法是最好的,在写 WTL 程序时也要求这样做,不过要是暂时没条件升级 Platform SDK,倒是可以先用用另外两个办法。

     

    2. vs2008->vs2005 (本人试验过,确实有效)

    VS2008 .sln .vcproj 转VS2005

    编译个WowModelViewer就不用装VS2008了。这样子啊!以前我咋就没想到呢?

    .sln

    Microsoft Visual Studio Solution File
    , Format Version 10.00
    # Visual Studio
    2008

    修改为

    Microsoft Visual Studio Solution File, Format Version 9.00
    # Visual Studio
    2005

    .vcproj

    <<>="Visual C++"Version="9.00"Name="wowmodelview"ProjectGUID="{DCA0C667-2A7A-4FCE-AD02-466F7A380E0C}"RootNamespace="wowmodelview"<>="Win32Proj"<>="131072<>开头的这句把9.00改为8.00就可以了。


    3.建议vc项目用vs2005

    4.1.无法打开,can not open files即无法找到该文件,归因于包含目录设置需要修改。

    以VS2005为例:

    需要修改以下三个包含目录:

    i、c++编译器-》常规-》附加包含目录。

    ii、link链接器-》附加包含目录。

    iii、资源-》附加包含目录。

    修改办法如下:

    1.注意路径设置是否有误。

    2.尽量将相对路径改为绝对路径。

     

    6.生产lib文件

     

    The first step is create an import library. Start a MSVS Command Prompt, and go to the GnuTLS installation directory.

     

    < def:libgnutls-26.def FilesGnuTLSbin>lib>
     
     

    This will create a libgnutls-26.lib that can be used as a import library for Visual Studio projects.

     

    Build a sample program to test it as follows:

     

    < C:Program 1.6.0 foo FilesGnuTLSbin>foo ... libgnutls-26.lib -Dssize_t="long" include -I.. foo.c FilesGnuTLSbin>cl>
     
     

    These steps are not fully polished yet, but appear to work.

  • 相关阅读:
    ***:做人的基本原则(看完终身受益)
    ref和out的相同和不同的讨论
    关于继承和虚函数的入门讨论
    C#中利用ArrayList来对索引器访问越界情况进行内容的扩充处理
    [C#]实现IEnumerable接口来使用foreach语句的一个实例
    浅谈MSSQL锁机制
    jQuery图片分屏加载技术插件
    SET IDENTITY_INSERT [Table] [ON|OFF]
    SQL Server DATEPART() 函数
    常用的SQL语句对数据库进行操作
  • 原文地址:https://www.cnblogs.com/ATually/p/2420997.html
Copyright © 2011-2022 走看看