C++Builder 程序员博客
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
API函数有没有可以开发组播程序的啊?
msdn上socket sdk里比较详细
大致是这些
socket
bind
setsockopt
WSAIoctl
WSAJoinLeaf
sendto
我试着写了一下,但是用到WSAIoctl时我无法通过连接,但是编译没有问题,是怎么回事呢,是不是我缺少什么东西?
哦,我知道到了,加上#pragma comment(lib, "ws2_32.lib ")就可以了
汗死,当初怎么回答出这个答案来的
那确实
29 Aug
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
这个语句的后面的冒号什么意思呀
谢谢了
楼上正解
成员初始化列表,有时会比直接赋值操作效率高一些。
初始化父类的。
就是初始化
初始化基类
构造基类
因为你这个类是继承TForm类的
TForm类的构造函数要求带参数的初始化函数。
这个语法是派生类在进行初始化时一定要做的。
这个是C++的基本语法耶,建议楼主选看看C++的语法。
初始化
基本C++语法
25 Aug
如何在C++Builder里用函数读取图片文件的尺寸大小
特意来看看..
看看bmp的文件结构,也可以很容易读出来。
用TImage加载图象后他的Width和Height就是图像分辨率
学习
了解了
这个知道了.不过复习一下也好.哈
楼2正解
学习
22 Aug
我想拟合高斯函数,求解高斯函数的三个参数。想问一下有什么好的办法呢?不想要程序,只想看算法。谢谢!
高斯拟合我以前没有搞过,我只搞过B样条拟合。
在确定B样条拟合时,可以考虑使用最小二乘法来确定每个系数。这样会比较有效率。
详细的内容,你应该参考最小二乘法的说明会好一些。
我想再问一下楼上关于最小二乘法。
线性方程组我已经得到了,但问题是方程组系数矩阵的第一列值太大了,以至于比第二列、第三列高好几个数量级。这种情况下我的线性方程组总是得不到很准确地解,而且当X值增大时,*X*X*X迅速增大,而使得矩阵中的第二列、第三列数据溢出?
这可怎么办呀?
回楼上,你说的这个情况我以前没有碰到过。但是可以考虑用坐标转换:
例如:令X'=0.001*X,大概可以解决一些问题。如果再不行,用对数。
6 Aug
void call()
{
printf("!!!!");
}
int main()
{
void (*callback)();
callback=call; //在这出错 Member function must be called or its address taken
callback();
system("pause");
}
在VC不会报错输出也正确,但再c++ builder就会出错。为什么会这样?
知道原因了,原来要把call()定义成全局的
感谢上楼
对的呀!
在C++BUILDER下,什么错也没有!
void call()
{
ShowMessage("OK");
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
void (*callback)();
callback=call;
callback();
}
//—————————————————————————
callback不需全局变量,是在栈中分配的!
该回复于2008-08-03 13:19:11被版主删除
突然想起!
TButton::Chick是怎样实现的;
TForm::OnChick()
{
}
比如Button1->Chick=OnChick;
但点击button1时就会执行OnChick()中的语句
OnChick()即不是全局函数也不是静态函数
TButton::Chick是怎样实现的呢
楼主好象刚学C++BUILDER,未入门呢
该回复于2008-08-04 14:27:51被版主删除
Button1->Chick=OnChick;
用的是 BCB 自己定义的一个类型
有必要看
_closure 关键字用法
闪腿咯
呵呵,明白了。
_closure 定义的指针能赋予任何指针
4 Aug
这个函数该如何调用?(不会传入参数)
__int16 rf_load_key(HANDLE icdev,unsigned char _Mode,unsigned char SecNr, unsigned char * _Nkey);
功能:向读写器的RAM 装入密码
参数:HANDLE icdev:rf_init() 返回的设备描述符
unsigned char _Mode :同 rf_authentication() 加密模式,1
unsigned char _SecNr :同 rf_authentication() 端口,1
unsigned char *_Nkey :包含了要写入硬件系统RAM 中的卡密码 密码:6个F
返回:成功则返回 0
typedef BYTE (__stdcall *FUNCPTR)(HANDLE ,unsigned char ,unsigned char , unsigned char * ); HINSTANCE hinst=LoadLibrary("XXX.dll"); FUNCPTR p=(FUNCPTR)GetProcAddress(hinst,"rf_load_key"); //下面是假设得调用,你需要干什么,然后自己调用 p(0,1,1, "FFFFFF");
akirya ,照你的写法写了,提示 cannot convert AnsiString to void *
顶,在线等指点……
…..
3 Aug
c++的dll代码:
char string1[1000]="第二窗口";
……
//向vb窗口发送74消息
SendMessage(m_hWnd,74,strlen(string1),(LPARAM)&string1);
//dll标记1
vb的窗口函数处理代码:
Private Sub Form_Load()
Me.Caption = "我的窗口"
…..
End Sub
Public Function WndProc(ByVal hWnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Dim a() As Byte, i As Long, str1 As String
If 74 = uMsg Then
ReDim a(wParam - 1)
CopyMemory a(0), ByVal lParam, wParam
str1 = StrConv(a, vbUnicode)
Form1.Text1 = Form1.Text1 + Chr(13) + Chr(10) + str1
WndProc = 0
Else
WndProc = CallWindowProc(GetProp(hWnd, OLDWNDPROC), hWnd, uMsg, wParam, lParam)
End If
vb窗口程序加载了dll
为什么当dll运行到dll标记1的地方,vb窗口的标题有原来的"我的窗口"被改为:"第二窗口"?
我也尝试过用:12消息SendMessage(m_hWnd,12,strlen(string1),(LPARAM)&string1);可就要么得不到消息,要么跟上面一样?为什么?如何解决?
If 74 = uMsg Then
ReDim a(wParam - 1)
CopyMemory a(0), ByVal lParam, wParam
str1 = StrConv(a, vbUnicode)
Form1.Text1 = Form1.Text1 + Chr(13) + Chr(10) + str1
WndProc = 0
看你的代码呀
你这个窗口收到74号消息时会执行这里的东东,所以窗口的标题会被更改!
这样的代码也是不行的:
If 12 = uMsg Then
ReDim a(wParam - 1)
CopyMemory a(0), ByVal lParam, wParam
str1 = StrConv(a, vbUnicode)
Form1.Text1 = Form1.Text1 + Chr(13) + Chr(10) + str1
WndProc = CallWindowProc(GetProp(hWnd, OLDWNDPROC), hWnd, uMsg, wParam, lParam)
End If
WndProc = CallWindowProc(GetProp(hWnd, OLDWNDPROC), hWnd, uMsg, wParam, lParam)
如何解决?
?
怎么VB的代码跑这来了?
Form1.Text1 = Form1.Text1 + str1
我的代码没有问题!
是:74号和12号消息的问题!
那消息在系统操作过程中,系统会认为用户要用发去的字符串去代替vb窗口标题!所以系统回想办法去更改vb窗口标题!
不过有时候更改不成功的!有时候会更改成功!
2 Aug
声明:本贴中,千万别在bcb和vc之间打仗,没意义。请针对我的郁闷给点实质有用的建议,谢谢!
一直用vc,想学习下bcb,刚好要处理一个bcb开发的工程,碰到些问题,求解。
用bcb6.0写了个hello world,ok!
用bcb6.0打开一个现有的bcb工程,这个工程比较大。bcb中对一个函数"go to definition",目前我知道的方法是:按住ctrl键然后单击。在hello world程序中这一功能还能忍受,但在这个现有的工程一执行这个跳转到定义的操作,bcb就“死”了,有时耐心地多等一会儿就完成了跳转操作,有时候等几分钟也反应不过来,只好在资源管理器中强行结束bcb。
综上,这样子怎么做开发,读、写程序啊,简直烦死人!bcb传说中一直很好用的,以上问题是因为什么?
1、有什么设置我没有设置好?请给出你的帮助和见解,谢谢!
2、是电脑配置弱的问题吗?2.2Ghz, 256×3Mb内存,笔记本;不过我比较看了下,vc启动时只需要4m多内存,而bcb需要40多m,打开一个工程更是不得了,怎么这么占资源?我用过labwindows/cvi够占资源的了也不过如此。
给点建议见解,让我的bcb好用起来,非常谢谢!
bcb的查找定义功能确实很慢,楼主可以试试bcb2007,它要快一点,不过安装很慢-_-
同情楼主
机器只能是这样,只好少使用这个功能了。熟悉了一下,通过查看project manager / classes等,原始点手动寻找。
敢问:bcb2006 or bcb 2007 是否能向下兼容bcb6.0的工程?
需要升级到新版,可能会有一些错误,但是都可以解决!
但是用6.0都成问题的话,用2007也不见的快多少!
的确很慢。建议手动查找。
Ctrl+F,输入函数名,在全部文件中查找
这个功能基本是废的
只听到硬盘咣咣想,也不知道它去哪儿找了。
有的时候我看了都着急,“打住打住,别跑远了……”。
我的老电脑01年配置的都不敢装BCB2007,Win2000下运行BCB6还可以
机器慢的话,把代码提示打开,鼠标在变量上晃两晃,常常卡得你毛躁…..
我的耐性就这么锻炼出来了
代码提示==东西 其实是要后台编译的
bcb编译慢 所以这些功能都不好用
delphi就非常快了
哈哈哈哈
ctrl+f
要解决你的问题还是给你介绍点插件吧,装上第一个插件就快了。
// 提高编译速度
Bcc32Pch IDE Plugin http://andy.jgknet.de/cpp
去掉下列勾选,使用没有任何问题
Use external linker (ilink32.exe)
Replace built-in Compile
// 这个在知道cpp里定位就就非常方便
cnpack http://www.cnpack.org
该回复于2008-07-10 02:40:20被版主删除
16 Jul
CG2007中似乎不支持对独立函数的测试.只能针对类的成员函数.
那这部分函数的测试该如何进行呢?
其实,我希望的测试环境应该支持这样的特征:
当拥护新增一些函数后,运行测试工具,测试工具会侦测到有未经过测试的函数,类,模块出现.
然后提醒用户添加相应的测试代码.
最近在看一本老书,2004年买的,有关UML与面向对象设计的
很多事情必须从机制上找到一种方式来解决.
如果一切都是"you can…",那么整个软件工程就没有继续发展的理由了.
那时候的编程是这样的:
打开二进制编辑器,开始写"00 00 40 54…"
自己写一个测试程序不久可以?
测试程序需要全面覆盖.
这个要求让自己来实现,不太现实.
自己写测试的程序拉