C++Builder 程序员博客
7 Sep
c++builder2007 下载地址,iso文件,用winrar解压就可以安装
http://www.ccysy.com/Article/Article_20070930130759.html
123
安装序列号和注册名及密码有人知道吗?
老妖的www.ccrun.com早就有下载了
不过,还是谢谢楼主的热情!
我帮老妖的网站分担分担流量
谢谢了,我找了很久了
1.6G,能不能精减到1个CDROM?
安装时是否需要联网?
谢谢楼主!
速度不错平均0.8M/s
不怕把你们学校的服务器拖垮了吧!
呵呵,当然怕了,所以也希望大家都手下留情,如果谁有什么好东西可以放到我的服务器上供大家下载!
谢了!
确实不错,下载速度很快。
我安装了,是正宗完整版本。Borland建筑师版本,包含C++Builder 2007,Delphi和Delphi.NET,属于Update 3版。其它网上我没看到过。太棒了!
谢谢楼主!
太棒了!
谢谢楼主!
尚未下载,先感谢一下。
下载中。。。。。 谢谢。
确实不错,下载速度很快。
我安装了,是正宗完整版本。Borland建筑师版本,包含C++Builder 2007,Delphi和Delphi.NET,属于Update 3版。其它网上我没看到过。太棒了!
谢谢楼主!
下载看看,谢楼主
20070930?这不是最新的包吧?建议要么重新做一份(原件:http://altd.codegear.com/download/radstudio2007/CodeGearRADStudio2007_v11.0.2804.9245.5.iso),谢谢。
一个小学的网站吗,居然有这么先进的东西 ,实在好.
谢*2007+CB
楼主,包含Delphi2007吗??
这不会是七剑提供的吧,你们看,他网上也有啊
http://www.zzg.3126.net/ShowFile.asp?FID=188
的确是好东西啊,太感谢了。。。
正在下,谢谢您!
我下了,但是不敢安装,我的机子上安装有BCB6,我不知道与2007有没有冲突!
我下了,但是不敢安装,我的机子上安装有BCB6,我不知道与2007有没有冲突!
==================
不会冲突。
mark
下载完了,安装说我序列号不正确,没法安装
删除自带的radstudio2007.slip文件(建议备份起来),不是就无法出现输入序列号的界面
安装超级慢,和VS2005不相上下……
到处在找啊,谢谢楼主的奉献…
谢谢了!
速度很快,1.13M/S ,不错,你学校的带宽够强的!
谢了
不用客气,我这里是网通的,速度还可以,但是电信的用户访问就完蛋了
很可惜啊,这个版本的soap webservice application开发向导产生的代码就有问题,编译能通过,但不能运行(注册),还不如C++Builder 6.0。
体积太大了,我的电脑受不了,iso文件直接就可以运行安装吗?
正在下载速度很快啊~ⷾ2.6MB
安装序列号和注册名及密码要怎么获取呀,请问有没有谁说下,谢谢
谢谢,下载了,可以用。
好像安装时不需要序列好等。
up
安装序列号和注册名及密码要怎么获取呀,请问有没有谁说下,谢谢
—————————————————-
里边有个破解文件的文件夹里有啊
to h98458
安装序列好,到Codegear申请个,网上也有,
安装完后,不要运行,直接用那个破解的覆盖原来的文件即可
既然带了破解,可能也带了sn,我没下载过,
谢谢。。。。。。
感谢楼主~
6 Sep
公司有6台机器,要求做产能分析,一天中的各个小时运行时间统计并生成图表,一周中每天运行时间统计并生成图表,一个月中每天运行时间统计并生成图表,数据库是SQL SERVER 2000,或者有没有这样的软件供参考的?或者是C++builder 与SQL SERVER2000开发的案例传我一份,我的邮箱是:daiwa033@yahoo.com.cn谢谢!
我有C++builder 与SQL SERVER2000开发的案例要吗?
多谢,能传我一份好吗?
很多关于数据库的教程,到老妖网站看看。
晕倒~~~~~~~~
传给你DEMO不如看教材更容易入门点。图文并茂。
一起学习。
网上的视频 很多,也很经典!
5 Sep
小弟是个新手,请详细点,谢谢
我在TADOConnection的Connection string 中是这样写的:
Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Equipment;Data Source=THWEN
不过 老是提示SQL SERVER 不存在或拒绝访问,服务器名是:THWEN ,用户名:sa,没有密码,数据库名:Equipment,,使用SQL SERVER身份认证
不知是怎么回事
将THWEN换成IP地址试试,如果是本地的话,用(LOCAL)或者.
换成IP也试过了,一样的
你的数据源存在吗?甚至,你的SQL安装正确吗?先到服务里查看下SQL服务是不是启动状态的。
用这个试试
Provider=MSDASQL.1;Persist Security Info=False;User ID=sa;Data Source=ip地址
数据源怎么设置?SQL SERVER 绝对没问题,前段时间我用VB 开发过一个数据库,连接也是一样的,只是改了个数据库名,
TADOConnection设置数据源
5 Sep
用c++Builder 如何获取html内容
指定的区域
帮顶
获取 一个 固定 的 html 内容 如: www.dfsdf.com/sdfsad.html
这个显示的文字 部分 内容 http://www.jzqyw.cn/company_content.php?shopid=30914(举例随便找的) 现实中就是一个 固定的 html 通过C++Builder实现 所谓的区域 就是 显示 的 文字部分 内容 (以上面的地址 为例)
各位 帮帮忙 很急!!!很急!!!很急!!!
先用WebBrowser或IdHTTP读取指定的网页内容,然后通过IHTMLDocument2接口分析HTML内容,至于指定的区域,由于不同的网页中结构以及元素不同,这一点很难做到通用。如果是读取一个结构不变化的网页,这个好办。看你的需求,需要代码就吱一声,顺便给出测试用的网页地址。
妖哥 。。还是 把代码整出来吧 谢谢 谢谢
急用 急用。。。。。。
网页结构 固定不变 用table 做成的
晚上回来给你代码。
先谢妖哥了
摇哥 我等你的代码 等的好辛苦
//通过lpWebDoc来取网页的代码。 AnsiString HtmlSrc; if(lpWebDoc) { try { //先取出所有的源代码。 AnsiString StrTagName; Variant Doc = lpWebDoc; Variant Tag_HTML = Doc.OlePropertyGet("all"); int iCount = Tag_HTML.OlePropertyGet("length"); for(int i=0;i<iCount;i++) { Variant Tag_Item = Tag_HTML.OleFunction("item",i); if(Tag_Item.VOleStr!=NULL) { Variant Tag_tagName = Tag_Item.OlePropertyGet("tagName"); if(Tag_tagName.VOleStr!=NULL) { StrTagName = AnsiString(Tag_tagName.VOleStr).UpperCase(); Variant Tag_outerHTML = Tag_Item.OlePropertyGet("outerHTML"); if(Tag_outerHTML.VOleStr!=NULL) { if(StrTagName == "HTML" && HtmlSrc=="") { //到这里就取出了页面的所有源代码 HtmlSrc = Tag_outerHTML.VOleStr; break; } } //end of if(Tag_outerHTML.VOleStr!=NULL) }//end of if(Tag_tagName. } //end of if(Tag_Item. }//end of for }catch(…){} }//end of if(lpWebDoc)
这两天事情多,有些忙不过来,代码写了一半,尚未调试完,如果今天晚上没有应酬,应该可以帮你搞定,最晚明天代码Post过来。
设计思想是用IdHTTP读取网页数据,经过接口转化,利用IHTMLDocument2或IHTMLDocument3定位到指定的表格,读取文字内容。
实在抱歉。我答应了别人的事,不愿意辜负别人期望。
用CppWebBrowser
通过 DOM 解析 HTML 中的内容,可针对每个节点(区域)进行各种操作!
我来了!!!这两天事情太多,忙里抽闲才调试完这一段代码。以下代码在BCB6中测试通过
#include <mshtml.h> //————————————————————————— // 函数功能:读取指定网页的内容,通过分析HTML文本获取指定区域内容 // strUrl:指定网页地址 // strTagName:指定要读取的HTML标签,如div或table // lTagIndex:指定要读取的索引,也就是第N个div或table //————————————————————————— String CrnGetHTMLAreaText(String strUrl, String strTagName, long lTagIndex) { String strResult(""); // 读取网页内容先,这里用的是Indy组件 TIdHTTP *ih = new TIdHTTP(NULL); String strHtmlText; try { strHtmlText = ih->Get(strUrl); } __finally { delete ih; } if(strHtmlText == "") return strResult; // 初始化COM CoInitialize(NULL); // 创建接口,用以分析HTML文本 IHTMLDocument3 *spDoc = NULL; CoCreateInstance(CLSID_HTMLDocument, NULL, CLSCTX_INPROC_SERVER, IID_IHTMLDocument3, (LPVOID *)&spDoc); HRESULT hr; if(spDoc) { IPersistStreamInit *pPersist = NULL; hr = spDoc->QueryInterface(IID_IPersistStreamInit, (LPVOID *) &pPersist); if(SUCCEEDED(hr)) { IMarkupServices *pMarkSvr = NULL; pPersist->InitNew(); hr = spDoc->QueryInterface(IID_IMarkupServices, (LPVOID *)&pMarkSvr); if(SUCCEEDED(hr)) { IMarkupContainer *pMkContainer = NULL; IMarkupPointer *pMkStart = NULL; IMarkupPointer *pMkFinish = NULL; pMarkSvr->CreateMarkupPointer(&pMkStart); pMarkSvr->CreateMarkupPointer(&pMkFinish); hr = pMarkSvr->ParseString(WideString(strHtmlText), 0, &pMkContainer, pMkStart, pMkFinish); if(SUCCEEDED(hr)) { IHTMLDocument3 *pNewDoc = NULL; // 通过分析HTML文本获得新的接口 pMkContainer->QueryInterface(IID_IHTMLDocument3, (LPVOID *)&pNewDoc); if(pNewDoc) { IHTMLElementCollection *pColl; // 获取所有的strTagName hr = pNewDoc->getElementsByTagName(WideString(strTagName), &pColl); if(SUCCEEDED(hr)) { long lCount; hr = pColl->get_length(&lCount); // 定位到指定的标签处 if(SUCCEEDED(hr) && lCount > lTagIndex) { VARIANT vTemp, vID; vID.vt = VT_UI4; vID.lVal = lTagIndex; // 63 63 72 75 6E 2E 63 6F 6D IDispatch *pDisp; hr = pColl->item(vID, vTemp, &pDisp); if(SUCCEEDED(hr) && pDisp) { // 读取这个标签的文本内容 IHTMLElement *pElement; hr = pDisp->QueryInterface(IID_IHTMLElement, (void **)&pElement); if(SUCCEEDED(hr)) { wchar_t *wszBuf; pElement->get_innerText(&wszBuf); strResult = wszBuf; // 走到这一步就算成功鸟 pElement->Release(); } pDisp->Release(); } } pColl->Release(); } pNewDoc->Release(); } pMkContainer->Release(); pMkStart->Release(); pMkFinish->Release(); } pMarkSvr->Release(); } pPersist->Release(); } spDoc->Release(); } CoUninitialize(); return strResult; } //————————————————————————— void __fastcall TForm1::Button1Click(TObject *Sender) { String strUrl = "http://www.jzqyw.cn/company_content.php?shopid=30914"; // 读取这个网页的第9个表格的文本内容 Memo1->Lines->Text = CrnGetHTMLAreaText(strUrl, "table", 8); }
谢谢 在多忙中 帮忙
受教了,谢谢
请问高手如何用 CppWebBrowser 写程序进行自动测试呢?
我试过, 先用WebBrowser读取指定的网页内容,然后通过IHTMLDocument2接口分析HTML内容.
然后让程序填表单数据, 提交
pFormElement->submit(); //成功
但如何在提交成功后获得新的一页的HTML内容, 然后让程序再填新的数据, 再次提交…… 直到完成最后一页任务呢?
在第一页数据成功提交后, 网站已返回第二页内容, 但我试用如下方法取新内容, 不行, Memo1 中显示的还是原来第一页的内容:
CppWebBrowser1->Update();
pDisp = CppWebBrowser1->Document;
pDisp->QueryInterface(IID_IHTMLDocument2, (void**)&pDoc2);
pDoc2->get_body(&body);
body->get_outerHTML(&source) ;
Memo1->Text=AnsiString(source);
做WEB游戏外挂用的?
妖兄,不知道您的Spy4Win中获取指定IE页面的代码该如何写啊?
Spy4Win功能太强大了,都可以看到页面中鼠标下面一小部分的代码了,不知道妖兄能否给些提示代码?
多谢
强贴留名。
楼主貌似已失踪,郁闷中。。。
@faretel:
提交成功后,重新Nav到提交前的页面,填写数据,提交,再重复这个步骤。
@dawnsong:
Spy4Win中IE页面探测功能主要是通过IHTMLDocument2接口来完成的,多看看mshtml.hpp文件对你有帮助。
5 Sep
只需要接收数据这个功能就可以,接收的数据来自适配器里
void __fastcall TForm1::MSComm1Comm(TObject *Sender)
{
//AnsiString str;
OleVariant s;
if(MSComm1->CommEvent==comEvReceive)
if(MSComm1->InBufferCount)
{
s=MSComm1->Input;
strComBuffer= strComBuffer + s.AsType(varString);
for (int i = 0; i < s.ArrayHighBound(1); i++)
{
strComBuff[m_iComBuff_Len++] = s.GetElement(i);
}
}
}
}
MSComm1->CommPort=PortNum;
MSComm1->Settings="9600,n,8,1";
MSComm1->InputMode=0;
MSComm1->PortOpen=true;
串口设置
搜一搜,MSCOMM32的文章多的很
它的麻烦就是模式1用变体,模式0是文本,用WideString简单
进一步解释下怎么样?
我可以给个例子
==
邮箱时什么?
5 Sep
CMOS没密码或已知道密码。 我想设置CMOS里面的定时开机时间。。
比较难搞!
不太易
看来还是有办法啊。。。
可以实现
可以实现的:
首先要搞清楚CMOS的结构,弄清楚各个参数放在内存的什么地方;
其次要能够读写CMOS所在的存储区,这个可以用WinIo.dll来做,网上有例子。
谢谢6楼…
应该可以实现的吧。
可以
怎么实现?
在dos下用inportb outportb
4 Sep
//CRC校验
uint fun_SerialCRC(uchar *puchMsg, uint usDataLen)
{
uchar uchCRCHi;
uchar uchCRCLo;
uint uIndex ;
uchCRCHi = 0xff;
uchCRCLo = 0xff;
while (usDataLen–)
{
uIndex = uchCRCHi ^ *puchMsg++;
uchCRCHi = uchCRCLo ^ auchCRCHi[uIndex];
uchCRCLo = auchCRCLo[uIndex];
}
return (uchCRCHi < < 8 ¦ uchCRCLo);
}
//RS485
//for high byte of CRC
uchar code auchCRCHi[] = {
0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×01, 0xC0,
0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41,
0×00, 0xC1, 0×81, 0×40, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0,
0×80, 0×41, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40,
0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1,
0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×01, 0xC0, 0×80, 0×41,
0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1,
0×81, 0×40, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41,
0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×01, 0xC0,
0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×00, 0xC1, 0×81, 0×40,
0×01, 0xC0, 0×80, 0×41, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1,
0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40,
0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×01, 0xC0,
0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×00, 0xC1, 0×81, 0×40,
0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0,
0×80, 0×41, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40,
0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×01, 0xC0,
0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41,
0×00, 0xC1, 0×81, 0×40, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0,
0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41,
0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0,
0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×00, 0xC1, 0×81, 0×40,
0×01, 0xC0, 0×80, 0×41, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1,
0×81, 0×40, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41,
0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×01, 0xC0,
0×80, 0×41, 0×00, 0xC1, 0×81, 0×40
};
//for low byte of CRC
uchar code auchCRCLo[] = {
0×00, 0xC0, 0xC1, 0×01, 0xC3, 0×03, 0×02, 0xC2, 0xC6, 0×06,
0×07, 0xC7, 0×05, 0xC5, 0xC4, 0×04, 0xCC, 0×0C, 0×0D, 0xCD,
0×0F, 0xCF, 0xCE, 0×0E, 0×0A, 0xCA, 0xCB, 0×0B, 0xC9, 0×09,
0×08, 0xC8, 0xD8, 0×18, 0×19, 0xD9, 0×1B, 0xDB, 0xDA, 0×1A,
0×1E, 0xDE, 0xDF, 0×1F, 0xDD, 0×1D, 0×1C, 0xDC, 0×14, 0xD4,
0xD5, 0×15, 0xD7, 0×17, 0×16, 0xD6, 0xD2, 0×12, 0×13, 0xD3,
0×11, 0xD1, 0xD0, 0×10, 0xF0, 0×30, 0×31, 0xF1, 0×33, 0xF3,
0xF2, 0×32, 0×36, 0xF6, 0xF7, 0×37, 0xF5, 0×35, 0×34, 0xF4,
0×3C, 0xFC, 0xFD, 0×3D, 0xFF, 0×3F, 0×3E, 0xFE, 0xFA, 0×3A,
0×3B, 0xFB, 0×39, 0xF9, 0xF8, 0×38, 0×28, 0xE8, 0xE9, 0×29,
0xEB, 0×2B, 0×2A, 0xEA, 0xEE, 0×2E, 0×2F, 0xEF, 0×2D, 0xED,
0xEC, 0×2C, 0xE4, 0×24, 0×25, 0xE5, 0×27, 0xE7, 0xE6, 0×26,
0×22, 0xE2, 0xE3, 0×23, 0xE1, 0×21, 0×20, 0xE0, 0xA0, 0×60,
0×61, 0xA1, 0×63, 0xA3, 0xA2, 0×62, 0×66, 0xA6, 0xA7, 0×67,
0xA5, 0×65, 0×64, 0xA4, 0×6C, 0xAC, 0xAD, 0×6D, 0xAF, 0×6F,
0×6E, 0xAE, 0xAA, 0×6A, 0×6B, 0xAB, 0×69, 0xA9, 0xA8, 0×68,
0×78, 0xB8, 0xB9, 0×79, 0xBB, 0×7B, 0×7A, 0xBA, 0xBE, 0×7E,
0×7F, 0xBF, 0×7D, 0xBD, 0xBC, 0×7C, 0xB4, 0×74, 0×75, 0xB5,
0×77, 0xB7, 0xB6, 0×76, 0×72, 0xB2, 0xB3, 0×73, 0xB1, 0×71,
0×70, 0xB0, 0×50, 0×90, 0×91, 0×51, 0×93, 0×53, 0×52, 0×92,
0×96, 0×56, 0×57, 0×97, 0×55, 0×95, 0×94, 0×54, 0×9C, 0×5C,
0×5D, 0×9D, 0×5F, 0×9F, 0×9E, 0×5E, 0×5A, 0×9A, 0×9B, 0×5B,
0×99, 0×59, 0×58, 0×98, 0×88, 0×48, 0×49, 0×89, 0×4B, 0×8B,
0×8A, 0×4A, 0×4E, 0×8E, 0×8F, 0×4F, 0×8D, 0×4D, 0×4C, 0×8C,
0×44, 0×84, 0×85, 0×45, 0×87, 0×47, 0×46, 0×86, 0×82, 0×42,
0×43, 0×83, 0×41, 0×81, 0×80, 0×40
};
我在头文件里增加typedef unsigned int uint;
typedef unsigned char uchar;
还是不行,有两个问题:
1、uchar code auchCRCHi[] 怎么处理?
2、__fastcall TForm1::uint fun_SerialCRC(uchar *puchMsg, uint usDataLen);在声明时也提示不正确。
我是新手,请再指教,谢谢!
#define code typedef unsigned int uint; typedef unsigned char uchar; //RS485 //for high byte of CRC uchar code auchCRCHi[] = { 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40 }; //for low byte of CRC uchar code auchCRCLo[] = { 0×00, 0xC0, 0xC1, 0×01, 0xC3, 0×03, 0×02, 0xC2, 0xC6, 0×06, 0×07, 0xC7, 0×05, 0xC5, 0xC4, 0×04, 0xCC, 0×0C, 0×0D, 0xCD, 0×0F, 0xCF, 0xCE, 0×0E, 0×0A, 0xCA, 0xCB, 0×0B, 0xC9, 0×09, 0×08, 0xC8, 0xD8, 0×18, 0×19, 0xD9, 0×1B, 0xDB, 0xDA, 0×1A, 0×1E, 0xDE, 0xDF, 0×1F, 0xDD, 0×1D, 0×1C, 0xDC, 0×14, 0xD4, 0xD5, 0×15, 0xD7, 0×17, 0×16, 0xD6, 0xD2, 0×12, 0×13, 0xD3, 0×11, 0xD1, 0xD0, 0×10, 0xF0, 0×30, 0×31, 0xF1, 0×33, 0xF3, 0xF2, 0×32, 0×36, 0xF6, 0xF7, 0×37, 0xF5, 0×35, 0×34, 0xF4, 0×3C, 0xFC, 0xFD, 0×3D, 0xFF, 0×3F, 0×3E, 0xFE, 0xFA, 0×3A, 0×3B, 0xFB, 0×39, 0xF9, 0xF8, 0×38, 0×28, 0xE8, 0xE9, 0×29, 0xEB, 0×2B, 0×2A, 0xEA, 0xEE, 0×2E, 0×2F, 0xEF, 0×2D, 0xED, 0xEC, 0×2C, 0xE4, 0×24, 0×25, 0xE5, 0×27, 0xE7, 0xE6, 0×26, 0×22, 0xE2, 0xE3, 0×23, 0xE1, 0×21, 0×20, 0xE0, 0xA0, 0×60, 0×61, 0xA1, 0×63, 0xA3, 0xA2, 0×62, 0×66, 0xA6, 0xA7, 0×67, 0xA5, 0×65, 0×64, 0xA4, 0×6C, 0xAC, 0xAD, 0×6D, 0xAF, 0×6F, 0×6E, 0xAE, 0xAA, 0×6A, 0×6B, 0xAB, 0×69, 0xA9, 0xA8, 0×68, 0×78, 0xB8, 0xB9, 0×79, 0xBB, 0×7B, 0×7A, 0xBA, 0xBE, 0×7E, 0×7F, 0xBF, 0×7D, 0xBD, 0xBC, 0×7C, 0xB4, 0×74, 0×75, 0xB5, 0×77, 0xB7, 0xB6, 0×76, 0×72, 0xB2, 0xB3, 0×73, 0xB1, 0×71, 0×70, 0xB0, 0×50, 0×90, 0×91, 0×51, 0×93, 0×53, 0×52, 0×92, 0×96, 0×56, 0×57, 0×97, 0×55, 0×95, 0×94, 0×54, 0×9C, 0×5C, 0×5D, 0×9D, 0×5F, 0×9F, 0×9E, 0×5E, 0×5A, 0×9A, 0×9B, 0×5B, 0×99, 0×59, 0×58, 0×98, 0×88, 0×48, 0×49, 0×89, 0×4B, 0×8B, 0×8A, 0×4A, 0×4E, 0×8E, 0×8F, 0×4F, 0×8D, 0×4D, 0×4C, 0×8C, 0×44, 0×84, 0×85, 0×45, 0×87, 0×47, 0×46, 0×86, 0×82, 0×42, 0×43, 0×83, 0×41, 0×81, 0×80, 0×40 }; uint fun_SerialCRC(uchar *puchMsg, uint usDataLen) { uchar uchCRCHi; uchar uchCRCLo; uint uIndex ; uchCRCHi = 0xff; uchCRCLo = 0xff; while (usDataLen–) { uIndex = uchCRCHi ^ *puchMsg++; uchCRCHi = uchCRCLo ^ auchCRCHi[uIndex]; uchCRCLo = auchCRCLo[uIndex]; } return (uchCRCHi << 8 | uchCRCLo); }
这是我做的小例子的源码,谁帮忙看一下问题出在哪里?谢谢!
http://download.csdn.net/source/605216
3 Sep
程序中用一个线程(Thread1)合并一个文件夹下的所有文件并创建一个新文件file.txt,然后将这个 file.txt 装入到Memo中,另一个线程(Thread2)对Memo中的内容进行处理,因为file.txt比较大,文件装入到Memo中需要一段时间,这样Thread2对Memo的内容进行处理时就有问题,请问怎么让Thread1执行完后再启动Thread2?
线程一的代码是:
Form1->MergerFile("c:\\log\\");//合并文件
Form1->Memo1->Lines->LoadFromFile("c:\\log\\one.txt");//装入文件
WaitForSingleObject等待线程1的结束
正版 C++ Builder 2007 中,只要鼠标移到菜单上,系统就出错,已经重装过N次()
错误信息:
Access violation at address 20032DE0 in module 'rtl100.bpl'. Read of address 00000004.
操作系统: Vista系统,同时装有Visual Studio 2008。之前安装过 cbuilder2007trialsetup.exe,出现这个问题,现在重新安装了正版(28000元,带有正式License,并在网上正式注册通过)
紧急寻找解决问题的办法!请求各位大吓帮助!不胜感激!
今天奥运开幕,北京的技术支持放假了,没人支持,哭ing
猜测上述问题的原因:因环境文件问题导致,CodeGear退出是,自动保存环境,但保存的环境出现问题时,打开工程就会出现问题。本人在C++Builder 6.0 中遇到过类似情况,解决方法是删除这个配置文件!!!但没有找到 C++ Builder 20007 中的项目缺省配置文件在那里!?
数组越界?
非常感谢大家的参与,这个问题我已经找到原因:都是“有道”在线词典惹的祸!!!当鼠标放到菜单上时,它开始“自动取词”,但CodeGear的IDE环境在取词方面有漏洞,因而造成程序瘫痪!
解决方法:关闭“有道”词典的在线取词功能!
这个问题困扰我很久,因为“有道”词典是开机自动启动,而问题没有定位到它,害的我重新安装了N次机器。但每次安装系统时,等待过程因为较长,又顺便安装上了“小巧”的有道词典(原因:它只有1M多空间,词汇是网上在线查询)
以前用金山词霸,也有这个病。现在的安的是金山和谷歌的合作版没这个病。不一定是cb的毛病。
C Builder中使用Delphi文件问题中,我还是无法在.pas同目录下找到生成.hpp文件。我就步骤是我把我需要用的text1.pas源文件放到一个文件夹中,打开C++ Builder,打开我的工程选择Projet ⦁dd to Project ,从Add to Project对话框中的文件类型选择PAS文件名选择text.pas,然后点击OK。
别人说会生成对应的.hpp文件(这个文件和你的单元文件在同一目录下面) ,可我没找到,不知道什么原因,是我做的顺序有问题?
是不是编译正确了才生成.hpp.在delphi中没错,怎么一加入后出现很多原来没有的错误
最好把代码/错误贴上来看一下
要确认你的BCB IDE没有装bcc32pch,或在编译的时候bcc32pch需要关闭。
怎么知道我的 IDE是否装bcc32pch
是不是在delphi中showmessage可以全是小写,但其中一个错误是 Undeclared identifier: 'showmessage'。
这句showmessage("数据开始有非法字符!");还有2个错误
[Pascal Error] test1.pas(96): Illegal character in input file: '"' ($22)
[Pascal Error] test1.pas(96): Illegal character in input file: '非' ($B7C7)
看上去你是用c++的编译器去编译pas文件了,不要把pas的代码贴入BCB中.只能加入pas的unit,然后再
#include <pas_unit.hpp>
具体可参考:
hnsyf(鱼片儿)写的:
http://topic.csdn.net/t/20020618/17/813364.html
我加入的就是pas的unit,我选择Projet ⦁dd to Project 加入test1.pas后上面显示还是test.pas不是test.hpp?
研究了很长时间了,一直弄不好,心里很急,很需要兄弟的帮忙
上面只会显示unit的名字test,没有.pas或.hpp
显示.pas,不过我是按照你和我说的也就是你给我的文章中的步骤做的
你的BCB是什么版本?
6.0
你有QQ吗?,你是否可以用QQ上的远程协助给我演示个简单的例子
那就奇怪了,可能是你的bcb本身的问题了
很需要keiy的帮忙,为了这个问题,我愁死了,我现在终于承认自己别正常人笨一些了
写一个简单的test.pas
unit test ;
interface
implementation
function testf:integer;
begin
testf:=100;
end;
end.
然后存盘,在同一目录下,新建一个bcb项目,将test.pas加入,BCB的程序为:
//————————————————————————— #include <vcl.h> #pragma hdrstop #include "Unit1.h" #include "test.hpp" //————————————————————————— #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //————————————————————————— __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //————————————————————————— void __fastcall TForm1::Button1Click(TObject *Sender) { ShowMessage(testf()); } //————-
编译看看结果
用delphi建简单例子的时候
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
这些东西删掉吗?
可以,可以生成.hpp
看来是我的程序有问题
我的test.pas是我截取的我原来的一个.pas文件的一部分,是不是与这个有关
上面我的也有小问题:
unit test ;
interface
function testf:integer; //少了声明
implementation
function testf:integer;
begin
testf:=100;
end;
end.
不然能编译不能运行
回头再看了一下你的错:
1.你没有uses Dialogs,就会报:
Undeclared identifier: 'showmessage'
2.showmessage("数据开始有非法字符!");
delphi的字中用不能",要用',要改成
showmessage('数据开始有非法字符!');
学无止境哪““
非常感谢keiy,虽然我的还没做出,但你给我的例子我做,,这贴现在结。以后还大有可能向您请教