C++Builder 程序员博客
30 Apr
5.1到了散分
另外私信里有人发什么csdn的幸运用户中奖信息太无聊了
来csdn搞这个
大家注意一下
这个属于RP问题吧
好像是随机的
就当练练手气
快买彩票去吧
挫。总有人做这种无聊的事。
會注意~
前两天有个号称出版社的发私信给我,也不知道是不是骗子。
….骗子还是挺多的…
哎。。。林子大啊
jf…
lz说的很早之前就遇到了,出版社社的今天才收到,最近都没上来。
骗子无处不在.QQ类似的也有.
现在手机短信上也有让你往某某银行帐号汇款的骗子,大家注意.
接分
出版社的话,要求邮递营业执照的复印件过来.
诚信危机
出版社那个人用的Email居然是sohu的免费信箱,感觉很不专业咯。我问他是哪个出版社的,然后就没音信了。估计是想骗真实的联系方式。
快下班了 揭帖 大家五一快樂
30 Apr
这个控件06年在BCB6下安装成功过,之后再没用过了,现在又想用该控件,但在BCB2009下不知该怎么安装,在ccrun下载了控件包,目录一大堆,请高人指点安装步骤及方法
DevExpress控件里就一个安装程序
你直接安装就行了
(在选择的时候 选择CB2009)
有安装程序的。
我在老妖的网站下载的没有哦
有安装程序的
请问安装程序在哪个目录下?
把这个帖子顶起来
同问
之前老妖的网站下DevExpress有几个版本的
都有安装程序的 昨晚看了一下 没有了
你要的话 留下联系方式
多谢,QQ:47413260
看了一下
原来你已经在我的QQ里面呢了
呵呵,
32012436我也要一个
我也要,谢谢 276171216
29 Apr
本人是BCB初学者,学了一年的BCB以为自己已经掌握的差不多了。没想到有人叫我写个游戏修改器给他,把我难住了,望高手们给个源代码给本菜鸟参考参考!先在这里说声谢谢了!
UP,有前途
fyi
http://dev.21tx.com/2005/05/30/13072.html
28 Apr
不好意思我初学者,我想问BCB更新返回结果值 就是更新成功了!怎么弄啊!
如果是自定义的函数,在前加上返回值类型bool;
函数体最后加上return true;
如果你是在组件的事件中写的话,可以使用一个全局变量接收返回值。
谢谢朋友!
27 Apr
我最近在学数据库编程
书上的一段代码要调用FormExist函数:
TForm* TfmMain::FormExist(AnsiString szCaption)
{
for(int i=0; i <this->MDIChildCount; i++)
{
TForm *pForm = this->MDIChildren[i];
if(pForm->Caption == szCaption)
return pForm;
}
return NULL;
}
复制后运行 出现错误
[C++ Error] Main.cpp(25): E2316 'TfmMain::FormExist(AnsiString)' is not a member of 'TfmMain'
[C++ Error] Main.cpp(40): E2268 Call to undefined function 'FormExist'
[C++ Error] Main.cpp(40): E2034 Cannot convert 'int' to 'TForm *'
[C++ Error] Main.cpp(45): E2303 Type name expected
[C++ Error] Main.cpp(45): E2034 Cannot convert 'int *' to 'TForm *'
[C++ Error] Main.cpp(45): E2379 Statement missing ;
我找不到FormExist函数
请高手指点指点 谢谢!!
FormExist(AnsiString szCaption) 未在 TfmMain 中宣告
27 Apr
1、我的程序中有一些文件是需要多个线程都要处理的,大概是这样的:部份文件系统中一些线程写入,另外一些线程读取或删除,
然后一些文件是线程写入,用户通过主线程来查询,我现在想用TMultiReadExclusiveWriteSynchronizer来进行同步,可
否?有些文件打开时即可读也可写,该用BeginWrite?还是BeginRead?还有一些其他的文件操作,该用什么函数?
2、我的程序中有一些变量p,多个线程都用到了,我想用一个TCriticalSection来进行同步,把这个TCriticalSection参数传
到多个线程中,然后传到各个类中进行同步可否?如:TCriticalSection cs, 我在主线程中定义了cs,然后传入TThread
线程,然后在线程中调用一些类时,把cs也传进去,如F(cs,p),请问:在定义F时需要用cs吗?如:
// 这里是否要用cs->Acquire();p是需要互斥的变量,在TF的构造函数中将p赋给TF中的P,即P=p
TF *f = new TF(cs, p);
// cs->Release();
谢谢,非常急
有些文件打开时即可读也可写?不好做啊。
有个文件是程序读完后又会写回去一些数据,我函数用的是:iFileHandle = FileOpen( strFileName.c_str(), fmOpenReadWrite );该怎么处理呢?
建议将每一个类都做成线程安全的,也就是在对每个成员变量进行操作时,均加锁。如果这个成员本身是个线程安全的类型,就不用加锁了。
注意不要提供public的成员变量,而是提供set和get函数来提供访问。对于简单数据类型的访问,可以不加锁,比如你举的if ( p ) 的例子。
那像这种 bool P = p 需要加锁吗?p是多个线程都要访问到的,我的程序有些变量没办法完全封装在类里面,还有对文件操作怎么做呢?用TCriticalSection好还是TMultiReadExclusiveWriteSynchronizer好,谢谢
请问:TCriticalSection可以嵌套使用吗?如:
TCriticalSection* cs;
cs = new TCriticalSection();
cs->Acquire();
int iHand = FileOpen(…) ;
….
for ( int i = 0; i < 10; i++ )
{
cs->Acquire();
int iNewHand = FileOpen(…) ;
….
FileClose(iNewHand);
cs->Release();
}
FileClose(iHand);
cs->Release();
这样可以吗?谁能救救我啊?
bool P = p;个人认为不需要加锁,当然加了也不会有问题。
如果有全局变量,那可以搞一个全局的锁。也可以把所有的全局变量封装到一个类里,把这个类做成线程安全的,然后搞一个这个类的实例作为全局变量来用。
可以把对文件的操作简单封装成一个类,并对打开关闭读写等函数加锁。要注意多个线程读写完文件后,文件当前位置会变化,要seek到正确的地方再操作。
TMultiReadExclusiveWriteSynchronizer不了解,只用TCriticalSection应该也够用了。
TCriticalSection我没看过源代码,不过从名字看,应该是windows api中CriticalSection的封装。如果在多个线程中连续2次调用Acquire(),后面一次会阻塞,直到第一次调用对应的Release()后为止。如果在同一个线程中,连续2次调用Acquire(),后面一次会不起作用。例如:
TCriticalSection* cs;
cs = new TCriticalSection();
cs->Acquire();//——————(1)
int iHand = FileOpen(…) ;
….
for ( int i = 0; i < 10; i++ )
{
cs->Acquire();//—————-(2)
int iNewHand = FileOpen(…) ;
….
FileClose(iNewHand);
cs->Release();//—————-(3)
}
FileClose(iHand);
cs->Release();//——————(4)
调用(1)后,会进入临界区,调用(2)时不起作用,调用(3)时离开临界区,调用(4)时不起作用或出错。
调用(2)时肯定不会阻塞,但会不会增加一个引用计数,我也记不清了。调用(3)时,是完全离开了临界区,还是减少引用计数,记不请了。调用(4)时是不起作用还是出错,记不请了。这些你都可以看下msdn,里边写得很详细。
非常感谢,我有个文件是多个线程写入,一个线程读取,用TCriticalSection也可以吗?
我是对所有文件都用了一个TCriticalSection,这种方式是不是性能不是很好?
用TCriticalSection可以。
每个文件一个TCriticalSection性能当然更好些,如果把对文件的操作封装成线程安全的类,以后的重用性也都好些。
如果多个文件用一个TCriticalSection的性能,能够满足当前的需求,那么不改也可以,先尽快完成开发以保证进度,然后再进行重构优化。
谢谢
27 Apr
T1(表1:商品表) T2(表2:购物流水表)
自动编号 商品名 自动编号 单据号 商品名
1 方便面 1 001 方便面
2 茶叶 2 001 香皂
3 面包 3 001 牛奶
4 口香糖 4 002 茶叶
. .. 5 002 面包
6 003 玻璃杯
. .. ..
请问利用上面的两个表如何生成一个临时表,临时表内容包括:
临时表包括的字段有:自动编号,及所有T1表distinct的商品名合并为T3表的列,内容为如下:
即:查找所有T2表不同的单据号(即存在一单据号即在T3表中添加一行),单据号下如果购买该
商品就在表T3该商品名列下标上1,没有则为0,请问如何创建并添加该临时表。
注:T1,T2表都有多条记录。
T3(临时表)
自动编号 方便面 茶叶 面包 口香糖 牛奶 玻璃杯 ..
1 1 0 0 0 1 0 ..
2 0 1 1 0 0 0 ..
3 0 0 0 0 0 1 ..
. .. .. .. .. .. ..
大概明白LZ的意思了
T3表的列就是T1表裏distinct的内容 T1表裏有多少不重復的T3表裏就有多少列(第一列不算)
T3表的第一列其實應該是T2表的不重復的單據號,T2表有多少個不重復的單據號就有多少行
其實這個已經沒有必要用到資料庫了
首先循環T1表distinct的内容把列放好
然後循環T2表這裡有兩個判斷,如果單據號已經有了,就不增加行,如果沒有就增加行,然後去循環列,如果列頭和T2表的商品名一樣,數據+1
27 Apr
BCB6.0为什么没有“复位”键?
菜鸟初学
在CBC6.0的菜单栏上
对于程序的运行:
有运行键
有暂停键
奇怪–为什么没有“复位”键?
谢谢!
O(∩_∩)O哈哈~
俺试一试,
第一条:俺刚学会就用这个关闭程序,感觉不太方便
第二条:不能用,没有反映,不知道是咋回事,安装在两台电脑都不行
第三条:高兴,真灵啊,小疑惑,这个很常用的键,为什么默认不选,怕不小心误操作?
多谢
俺菜鸟一定得好好学习,感谢论坛老大啊
第二条你按了没反应可能是Editor Options中,Key Mappings选择的是非缺省。看一下Run菜单下Program Reset右面的快捷键显示什么。
受用了,感谢。
26 Apr
我有一个用C++ Builder6.0做的程序,我将他编译完成后将.EXE和.obj拷到一个没有C++环境的机器上运行时不能运行,好像是不能连接数据库,当我安装上c++时就能连接,程序运行正常。这是为什么呢?我的数据库用是的SQL2000,连接方式是通过读取文件目录的.ini配置文件来获取数据库等信息的。
请高手帮帮忙,急!急!………………
谢谢!
都须要那些DLL文件能说一吗?
你拷贝.obj文件是什么目的啊?有这个必要么?如果生成exe时没有打包bpl库,那么发布程序的时候就要把这些库发布到目标机器的系统中,还有数据库程序也需要一些动态链接库,你安装了c++环境其实就是把应用程序需要的库文件发布到了目标机器.
你在没有c++环境的机器中运行,是不是弹出对话框,提示缺少什么文件?
告诉你一个最简单的办法:把你机器上borland c++文件夹全部剪切走,然后启动你开发的软件,提示缺少什么文件你就到borland文件夹下面查找,放到你的exe所在的文件夹,直到正常运行,一般情况下只是几个文件而已.具体需要那些文件还是要看你应用程序的类型以及编译选项.
怎样发布C++ Builder 我也不太清楚 我不是做C++的,能教教我吗。
我的QQ:419613023
我已经很久不做程序设计了,以前做得比较多,谈不上教不教的,发布这个程序比较简单,你在网上搜一下,应该不少的.我在帖子上的疑问还没有人解决呢,愁人.
呵呵 谢谢啊
在没有Borland C++ Builder 6.0环境的机器运行,需要配置:
1、Project/Option/Packages/Run with runtime packages 的勾去掉
2、Project/Option/Linker/Uses dynamic RTL 的勾去掉
3、Project-Options中,把Packages页中的“Build with runtime packages”的勾去掉
楼上的方法我也试过了不过也是不行啊
程序运行正常
连不上数据库
证明你发布好了
只是配置连接服务器的运行参数错误
你连接数据库用的BDE 还是ADO?
如果是BDE控件组的话 还需要配置BDE
25 Apr
菜鸟:如何让“屏幕”停留下来?
BCB6.0-文件-新建-其他-Consol Wizard-确定-C++ -OK //得到如下附录的CPP文件
RUN//一个黑色屏幕一闪而过
将光标停在 return 0;
运行-运行到光标处-
RUN//此时黑色屏幕能够停留
问题:程序中加什么代码,黑色屏幕可以直接RUN后停留?
谢谢!
附录:
//—————————————————————————
#pragma hdrstop
//—————————————————————————
#pragma argsused
int main(int argc, char* argv[])
{
return 0;
}
//—————————————————————————
O(∩_∩)O
高兴
谢谢
晚安