zoukankan      html  css  js  c++  java
  • 无法定位程序输入点XXXXX于动态链接库qtcore.dll

    今天编译一个QT工程(QT版本:qt-win-opensource-4.8.4-vs2008),编译成功,但老是运行出错,如下所示:

    QT卸了又装,都没用,网上找资料,各种说法有,有说中木马的,路径错的,软件冲突的,都试了一遍,没有。

    网上查了N多方法,总结一下,大概有两种:

     (一)qtcore4.dll编译生成时除了问题。

    参考下边一篇博客,http://www.xjtudll.cn/Exp/62/,下了个dll关联dll查看器,查看结果如下,原来是QTcore4.dll依赖项却少,网上下载了MSVCP90.DLL和MSVCR90.DLL。原来如此。

    (二)不同版本dll数据,path设置时产生干涉。(本文作者出现类型即该种问题)

    可以参考如下博文:http://www.cnblogs.com/loongfee/archive/2011/11/30/2268701.html

    最近在学习Code::BlocksCB),感觉CB很强大很开放,尤其是它的纯插件式的框架,非常赞。

    但是从VSCB的转型实在是痛苦的,在VS下面没有问题的程序,放到CB中编译就不能通过。。。

    另外,要使用CB+MinGW进行开发还需要将开发中用到的开源库都用MinGW编译好,wxWidgetsGDALQtOssim……

    网上的教程不少,但多是转来转去的,其实就是那一两个版本,说起来都很顺利,按照他们提供的步骤去编译却总是遇到一些奇怪的问题,很不好解决。

    好在Qt官方网站提供了MinGW版本,直接安装就行了。这里说说在CB+MinGW环境下使用Qt的方法以及遇到的问题。

    这里默认Code::Blocks+MinGW的环境已经配置好。

    1、首先在http://qt.nokia.com/downloads/windows-cpp网站上下载QtMinGW库(300M+),安装。

    相应的VS2008版本可以从http://qt.nokia.com/downloads/windows-cpp-vs2008 下载,比较恶心的是这两个版本的库不能安装在同一个目录下面。所以我就将MinGW版本的库安装在了C:\Qt\4.7.4\MinGW下。

    (之前安装过Qt SDK完全版(1.6G),装完5G+,居然不包含MinGW版本的库。。。)

    2、然后在“我的电脑属性高级系统设置高级环境变量”中设置环境变量。

    编辑PATH,添加C:\Qt\4.7.4\MinGW\bin”,添加的位置要靠前一点,不然可能会被排在前面的其他版本的Qt库所覆盖。我就是被这个问题困扰了好几天,在安装完MinGW版本的Qt库后,在Code::Blocks中新建了一个Qt4的工程,然后Build and Run,总是提示“无法定位程序输入点qUnregisterResourceData@@YA_NHPBE00@Z于动态链接库 QtCore4.dll”的错误,虽然知道是dll库的问题,但是始终没查出问题具体出在哪。最后发现时因为之前装过OSGeo4W,其中包含了Qt库,而OSGeo4W\bin目录在PATH中比较靠前,于是后面安装的MinGW版本的Qt库一直处于被忽略的状态。将C:\Qt\4.7.4\MinGW\bin”放到它前面就OK了。

    综上,在大量测试DLL程序是,直接在环境变量里设置path添加dll路径,可能会产生问题。关于DLL如何在VC中调用问题,参见如下博文:

    http://www.cnblogs.com/vranger/archive/2013/01/14/2860141.html

    知识就是力量!
  • 相关阅读:
    用java的眼光看js的oop
    SpringBoot YAML文件特殊类型配置
    【框架】一种通知到多线程框架
    【网络基础】数据包生命
    【网络编程】TCPIP-小笔记集合
    【网络编程】TCPIP-8-套接字的多种选项
    【网络编程】TCPIP-7-域名与网络地址
    【网络编程】TCPIP-6-TCP的半关闭
    Web应用安全防护-WAF
    漫画 | 这样的程序员男友,让我分分钟想剖腹自尽!
  • 原文地址:https://www.cnblogs.com/vranger/p/2853958.html
Copyright © 2011-2022 走看看