My Blog! blog.gkong.com   

Tip of my blog

新年快乐!


阅读(1795) 评论(0)
标签(TAG):

之前一直在XP,Vista和Win7(32,64位)运行正常的基于CVI9.0的程序,在加入一个日历ActiveX控件后进行兼容性测试时发现,XP正常,但Win7中连界面都进入不了。检查发现是由于目录设置中的加载目标到可执行文件窗口的设置错误所致,如下图所示:

image

无标题

   去掉Shell32.Lib的打钩,这样程序在Win7中运行时,VC运行时会调用对应于Win7的Shell32.dll。这样就不会出现兼容性的问题!
   另外把C源文件也一并去钓,把C源文件加入可执行文件的后果如下图所示

无标题1 Win7的VC运行时在对可执行文件所作的动作。(误把C源文件嵌入到可执行文件所导致的)不过按下取消,程序能正常运行!

附录1: Shell32.Lib

shell32 - shell32.dll - DLL文件信息

  DLL 文件: shell32 或者 shell32.dll

  DLL 名称: Microsoft Windows Shell Library(微软视窗外壳要求生效的命令代码集合)

  描述:

  shell32.dll是Windows的32位外壳动态链接库文件,用于打开网页和文件,建立文件时的默认文件名的设置等大量功能。

  严格来讲,它只是代码的合集,真正执行这些功能的是操作系统的相关程序,dll文件只是根据设置调用这些程序的相关功能罢了。

  属于: Microsoft Windows Shell (微软视窗外壳)

  系统 DLL(动态连接库)文件: 是


image

附录2: Calling Conventions in LabWindows/CVI

调用约定,即Options » Build Options » Default calling convention。一般默认调用约定是'__cdecl';而如果DLL使用WINAPI,则需要使用调用约定'__stdcall'。请根据具体情况设置。比如下面的例子是一个默认约定选译为“__stdcall”在编译时出错的例子:
image

附录3: Build Options 设置的一些说明

image

by 进化中的兔子 发表于:2010/9/29 14:07:05
My subject | 我的主题

New entries | 新发表

Messages Board | 留言板


Guest Comments | 新评注


Blogger Login | 登陆栏
Blog Infomation | 信息栏
博客名称:嵌入式系统&虚拟仪器 日志总数:450 评论数量:277 访问次数:1781245 建立时间::2005年10月25日
Blog Infomation | 搜索栏
Blog Infomation | 收藏栏

XML RSS 2.0

嵌入式系统&虚拟仪器
© COPYRIGHT 2004 ALL RIGHTS RESERVED http://www.gkong.com

中华工控网 | 联系我们 | 工控论坛首页 | 工控博客首页 | 博客注册 | 博客登陆

工控博客管理联系邮箱:工控博客服务邮箱

中华工控网 © Copyright 2013. All rights reserved.