关于XE开发Win64程序

dataxdata 2016-07-22 05:39:54
XE开发Win64应用程序,应该设置哪些东西呢?
已将Target Platforms设置成64-bits windows,并且也Active了,怎么编译出来的还是32位程序呢?还需要设置哪些地方呢?
...全文
273 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccrun.com 2016-07-26
  • 打赏
  • 举报
回复
引用 14 楼 dataxdata 的回复:
自己手工建了一个Win64文件夹,就可以编译了,然后就发现Win64的编译器好像跟Win32不一样,好多Win32下没问题的代码,在Win64下都要报错,在编译阶段和连接阶段都是如此,并且Win64编译器不支持UTF-16格式,把源文件改成UTF-8后才能正常编译
64位的编译器更加严格,帮助开发者发现可能存在隐患的代码。
FASM_FASM 2016-07-24
  • 打赏
  • 举报
回复
引用 14 楼 dataxdata 的回复:
自己手工建了一个Win64文件夹,就可以编译了,然后就发现Win64的编译器好像跟Win32不一样,好多Win32下没问题的代码,在Win64下都要报错,在编译阶段和连接阶段都是如此,并且Win64编译器不支持UTF-16格式,把源文件改成UTF-8后才能正常编译
我的使用感觉是win64的编译器稳定性尚可(win64编译器已经被我换成了10.1的),但windows下链接缺乏常用库支持(32位不存在此问题)。源码我没有采用U16的编码格式,而是直接用了ANSI编码。如果考虑多平台的话用U8比较好一些。
dataxdata 2016-07-23
  • 打赏
  • 举报
回复
引用 5 楼 ccrun 的回复:
C++Builder 直到 XE3+U2 以后才支持64位的C++编译器
用的是XE10啊...是不是安装有问题?
dataxdata 2016-07-23
  • 打赏
  • 举报
回复
自己手工建了一个Win64文件夹,就可以编译了,然后就发现Win64的编译器好像跟Win32不一样,好多Win32下没问题的代码,在Win64下都要报错,在编译阶段和连接阶段都是如此,并且Win64编译器不支持UTF-16格式,把源文件改成UTF-8后才能正常编译
ccrun.com 2016-07-23
  • 打赏
  • 举报
回复
路径中的一个点就表示当前目录,这个没问题。可能是你的C++ for 64-bit安装有问题,建议重装修复一下。
dataxdata 2016-07-23
  • 打赏
  • 举报
回复
又试了一下,这次运行时出来这个消息: Could not found program, 'D:\source\test\.\Win64\Debug\test.exe' 这个路径中,在Win64前面多了个".\",这样路径就不对了,没有生成Win64文件夹可能也是这个原因,这个需要在哪里改呢?
dataxdata 2016-07-23
  • 打赏
  • 举报
回复
为什么编译后,没有出现Win64这个文件夹呢?只有Win32一个文件夹
dataxdata 2016-07-23
  • 打赏
  • 举报
回复
引用 9 楼 ccrun 的回复:
这个不好说,得确认当前激活的配置是64-bit Windows,代码中加点测试:
#ifdef _WIN64
    ShowMessage("w0ca0, Win64!");
#endif
试过了,没有出来这个message,我已经在project manager中activate 64-bit windows了,还需要做什么其它操作吗?
ccrun.com 2016-07-23
  • 打赏
  • 举报
回复
这个不好说,得确认当前激活的配置是64-bit Windows,代码中加点测试:
#ifdef _WIN64
    ShowMessage("w0ca0, Win64!");
#endif
dataxdata 2016-07-23
  • 打赏
  • 举报
回复
引用 7 楼 ccrun 的回复:
没有XE10的版本。你说的是10 Seattle吧?没问题,支持64位的C++编译器,我用过。
是啊,但不知为什么我用就不行,问题可能出在什么地方呢?
ccrun.com 2016-07-23
  • 打赏
  • 举报
回复
没有XE10的版本。你说的是10 Seattle吧?没问题,支持64位的C++编译器,我用过。
ccrun.com 2016-07-22
  • 打赏
  • 举报
回复
C++Builder 直到 XE3+U2 以后才支持64位的C++编译器
dataxdata 2016-07-22
  • 打赏
  • 举报
回复
感觉编译器认准32位了,不管目标平台怎么选,都按32位编译 现在用CB感觉一点也不踏实,随时担心会不会出些稀奇古怪的问题...
dataxdata 2016-07-22
  • 打赏
  • 举报
回复
引用 1 楼 FASM_FASM 的回复:
不应该吧,只要设置目标平台就行了.其它的应该是IDE帮你打理好了。
引用 2 楼 FASM_FASM 的回复:
BTW: 你如何判别编译好的程序目标特性(32/64)呐?
很奇怪的,新建一个VCL项目,在目标平台上只有Win32,然后人工添加Win64并Activate,这时候如果直接编译,就会在连接时出现一堆Unresolved external....referenced from '...Win32\..."错误,项目文件夹下也没有出现Win64文件夹,如果先用Win32编译一遍,然后再用Win64编译,就能编译成功,但是生成的文件在Win32\Debug文件夹中,还是32位应用程序,不知道在哪里设置错了 判断应用程序32位还是64位的方法是运行后在任务管理器中看,能看出是32位还是64位的
FASM_FASM 2016-07-22
  • 打赏
  • 举报
回复
BTW: 你如何判别编译好的程序目标特性(32/64)呐?
FASM_FASM 2016-07-22
  • 打赏
  • 举报
回复
不应该吧,只要设置目标平台就行了.其它的应该是IDE帮你打理好了。

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧