• 5865阅读
  • 8回复

[提问]编绎问题求教win32 API [复制链接]

上一主题 下一主题
离线huylivecn
 
只看楼主 倒序阅读 楼主  发表于: 2011-12-20
xp系统
qt4.7.4sdk安装
C++ QT新手,用qt尝试画公司软件的界面,界面都没问题能编绎,啥都行.
把同事另外写的一部分程序整合到一起来时,死活都编绎不成功了.同事说可能是他的程序使用了大量的win32 Api
具体现象:
       1,编译时 报错 '_fseeki64' was not declared in thisscope
             找到这两行 qtSDK/minGW/include/stdio.h  
                   #if __MSVCRT_VERSION__ >= 0x800   好像是条件成立时才定义了 _fseeki64这个方法
                     mingw32/include/_mingw.h 213
                  # define __MSVCRT_VERSION__ 0x0600
             把第二个文件中这里改成了 0x0800
             编译过程没出错了.
       2,链接时报错  undefined reference to `_fseeki64'
             还有其它56个函数方法报同样的错误.
找了两晚资料,都没找到解决办法,求解救.
     查看分析了g++的编译命令:
       g++ -mthreads -Wl,-subsystem,windows -o debug\myapp8.exe debug/main.o debug/mainwindow.o debug/moc_mainwindow.o -L"d:\QtSDK\Desktop\Qt\4.7.4\mingw\lib" -lmingw32 -lqtmaind -lQtGuid4 -lQtCored4 -LC:\OpenSSL-Win32_full\lib
     以及Makefile
       LIBS        =        -L"d:\QtSDK\Desktop\Qt\4.7.4\mingw\lib" -lmingw32 -lqtmaind -lQtWebKitd4 -lQtGuid4 -lQtCored4 -LC:\OpenSSL-Win32_full\lib
    是不是因为链接时没引用win32 api的库....
    

离线ninsun

只看该作者 1楼 发表于: 2011-12-20
MSVCRT
这货是vs编译器的东西吧……
mingw是没有这个宏定义的啊……
换成vs2008版本的Qt吧……
离线huylivecn
只看该作者 2楼 发表于: 2011-12-20
回 1楼(ninsun) 的帖子
  怎么换,装vs编译器再装qt插件吗
离线huylivecn
只看该作者 3楼 发表于: 2011-12-20
估摸着是 QMAKESPEC 没设置好,现在指向的win32-g++
    怎样设置指向win32-msvc2005
设置了环境变量不起效果
   也没找到可以configure的地方
  求指教
离线roywillow

只看该作者 4楼 发表于: 2011-12-20
我感觉还是再检查一下那一部分的代码比较好
会不会是用到了一些vc下才有的头文件之类的
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线huylivecn
只看该作者 5楼 发表于: 2011-12-20
回 4楼(roywillow) 的帖子
就拿这个方法来说吧 _fseeki64  这个是看到了在mingw的引用文件里存在的
   请问 win32-g++ 这个是什么平吧啊,和win32-msvc2005 有什么不同
谢谢
离线cutemmll
只看该作者 6楼 发表于: 2011-12-20
如果确实用到了win32中的API,那么还是到
http://qt.nokia.com/downloads
去安装类似于下面的版本吧
Qt libraries 4.6.4 for Windows (VS 2008)
ps:这个版本需要安装vs2008才能正常工作。
另外,如果用到了win23中的库,你还需要在pro文件中加入相关的库文件。
比如你在程序中用到了头文件  winuser.h
那么你的pro里面需要增加如下内容
LIBS+= user32.lib



c------------enjoy qt & enjoy life-----------++
离线huylivecn
只看该作者 7楼 发表于: 2011-12-20
回 6楼(cutemmll) 的帖子

为项目myapp6执行构建步骤 ...
正在启动 "d:\qtsdk\desktop\qt\4.7.4\mingw\bin\qmake.exe" E:\huy\QT\workspace\myapp6\myapp6.pro -r -spec win32-g++
   不知道为什么,就是不能切换 -spec win32-g++  
离线huylivecn
只看该作者 8楼 发表于: 2011-12-23
最后是下载的qt vs2008版本, 用vs编译的
快速回复
限100 字节
 
上一个 下一个