BCB!让我又爱又恨......痛苦中ing,放分!!!

MEFULEU 2005-01-25 05:29:08
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
String tmps="0x";
tmps=tmps+ Edit1->Text;
UCHAR c=StrToInt(tmps.c_str());

c=StrToInt(tmps); //有时候竟然编译出错!Cannot convert 'AnsiString' to 'const char *'

}
//---------------------------------------------------------------------------


c=StrToInt(tmps); //有时候竟然编译出错!Cannot convert 'AnsiString' to 'const char *'

不是编译器的原因,我新打开一个Application则没有问题;

不是程序原因;没有自定义的StrToInt函数?奇怪啊;

大家谈谈这方面的想法吧!





...全文
513 51 打赏 收藏 转发到动态 举报
写回复
用AI写文章
51 条回复
切换为时间正序
请发表友善的回复…
发表回复
3996906 2005-01-27
  • 打赏
  • 举报
回复
楼主的情况我试了很多次都没有遇到,不过我是用bcb6的
----------------------------------------------------

按位拆解很容易出来的~~~~~~~
daily_flashing 2005-01-27
  • 打赏
  • 举报
回复
up
constantine 2005-01-27
  • 打赏
  • 举报
回复
在delphi里面有一点不同,那么就是
String 不一定会是AnsiString,有可能是ShortString,但是要你自己去触发开关
bcb里面没有听说过,不知道

楼主的情况我试了很多次都没有遇到,不过我是用bcb6的
String,AnsiString 我从来都是这样用
jukyy 2005-01-27
  • 打赏
  • 举报
回复
多用AnsiString就对了。
3996906 2005-01-27
  • 打赏
  • 举报
回复
我知道你想了解,我也想了解呢


因为有typedef AnsiString String; 很不解

难道pascal里的typedef和c++里处理不同~~~~~~~
MEFULEU 2005-01-27
  • 打赏
  • 举报
回复
谢谢各位的关注;

只是想了解一下其中的问题所在;

我的抓图如下:
http://www.h2e.com.cn/images/err.GIF
sonic_yq 2005-01-27
  • 打赏
  • 举报
回复
顶吧
redlei 2005-01-26
  • 打赏
  • 举报
回复
constantine(飘遥的安吉儿)
char 和 string不能用=的
在C里面要用strcmp()函数的
FallenAngel 2005-01-26
  • 打赏
  • 举报
回复
没区别

虽然我一直用AnsiString
Celia2005 2005-01-26
  • 打赏
  • 举报
回复
支持你,别郁闷。我也刚从郁闷中缓过来,.加油
constantine 2005-01-26
  • 打赏
  • 举报
回复
c=StrToIntDef(tmps,0);
出来c=0吗?不是的话估计你的bcb有问题
MEFULEU 2005-01-26
  • 打赏
  • 举报
回复
我现在没有办法;

只好用别的函数:

c=StrToIntDef(tmps,0);

discusC 2005-01-26
  • 打赏
  • 举报
回复
小弟试过了.没有问题的,能成功的转换成十六进制,不过我同意楼上那位大哥的话.Bcb里少
用String 为好.至少我是这么做的.会少不少的麻烦呀!!!
peter2108 2005-01-26
  • 打赏
  • 举报
回复
使用StrToInt64就不会出问题了.
3996906 2005-01-26
  • 打赏
  • 举报
回复
kao,写反了

typedef AnsiString String;

困惑啊~~~~~~~~~~
UFOBH 2005-01-26
  • 打赏
  • 举报
回复
BCB就是这样让人欢喜让人愁,有时候大量的时间竟然不是处理程序本身的设计问题,而是用来解决BCB本身的个性问题。
不知道那位老师能够出本书,专门收集整理BCB常见的编译问题,处理方法,规范的编程规则,高效的代码应该如何编写等等问题
这样才有利于大家BCB技术的提高
3996906 2005-01-26
  • 打赏
  • 举报
回复
确实有

typedef String AnsiString

但是有时候声明要AnsiString 的地方我用String 是会出错,特别是进行位处理的时候

还不明白怎么回事~~~~~~后来我就没用过String 了,bcb里字符串处理我只用 AnsiString
tccsdn 2005-01-26
  • 打赏
  • 举报
回复
上面的代码我这里编译也没问题

这是sysutils.hpp 里面定义的
extern PACKAGE int __fastcall StrToInt(const AnsiString S);

这是sysmac.h里面定义的
typedef AnsiString String;
sfans 2005-01-26
  • 打赏
  • 举报
回复
我觉得应该Debug一下,看每一步骤的结果,如果每次编译或换新环境后,变量内容是不同的,那就是编译器的问题了。
constantine 2005-01-26
  • 打赏
  • 举报
回复
我在说一次,在bcb里面
String AnsiString 是同一个东西
就象你有两个名字一样,叫那个都是你
加载更多回复(31)

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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