随笔分类 -  C++Builder

摘要:1. Vector类型是快速增加的,定义一个空的再添加成员,比定义指定长度的集合操作更快。因此即此能预判成员数量也没必要定义长度。2. 在for循环时直接判断Vector的size,因为size是内联函数,效率很高,没必要增加一个变量保存size再判断。3. 在C++中循环Vector成员时使用!=size,而不推荐<size4. 标准库中的string和直接字符串(如:"123")是两个不同的数据类型。5. 现代C++中推荐使用vector代替数组,用string代替char数组,用迭代器实现同样功能的指向数组的指针。当只有在确定性能需要时才使用数组这种原始数据类型 阅读全文
posted @ 2013-03-21 09:10 81 阅读(288) 评论(0) 推荐(0) 编辑
摘要:原文:http://www.cppblog.com/xiaozhuozhuo/archive/2007/07/23/28663.html▲1、C语言标准库函数atoi()等。函数名: atoi 功 能: 把字符串转换成整型数 用 法: int atoi(const char *nptr); 程序例: #include <stdlib.h> int main(void) { int n; char *str = "435"; n = atoi(str); printf("string = %s integer = %d\n", str, n); 阅读全文
posted @ 2013-02-25 14:02 81 阅读(311) 评论(0) 推荐(0) 编辑
摘要:原文:http://www.cnblogs.com/seerlin/archive/2009/03/10/1407478.html 第二部分:线程同步基础 同步要领 下面的表格列展了.NET对协调或同步线程动作的可用的工具: 简易阻止方法 构成 目的 Sleep 阻止给定的时间周期 Join... 阅读全文
posted @ 2011-12-13 16:47 81 阅读(354) 评论(0) 推荐(0) 编辑
摘要:今天写多线程程序,使用WaitAll时出了这个错误,在网上查找后得出原因是[MTAThread]和[STAThread]的区别,这是个线程模型的问题,大概明白一些,但也不是很透彻,因为是程序比较大,也不愿意随便修改什么。 转念一想,干嘛非要WaitAll啊,直接用:foreach(var v in [。。]) v.WaitOne();不就ok了吗! 阅读全文
posted @ 2011-12-12 19:26 81 阅读(1871) 评论(0) 推荐(0) 编辑
摘要:在主程序中调用WebService没有问题,但在辅助线程中调用时会出现:尚未调用 CoInitialize 错误。解决方法:在调用前增加代码:CoInitialize(NULL);在调用后增加代码:CoUninitialize(); 阅读全文
posted @ 2011-03-21 21:50 81 阅读(823) 评论(0) 推荐(0) 编辑
摘要:1. implib 生成lib文件2. 声明函数 extern "C" int __stdcall GetNetCardCount(); 说明: 声明方式根据dll中定义可能有所变化。 阅读全文
posted @ 2011-02-22 19:15 81 阅读(280) 评论(0) 推荐(0) 编辑
摘要://取得本进程id HANDLE hProcess = GetCurrentProcess(); //设置本进程的优先级 int stat = SetPriorityClass(hProcess, NORMAL_PRIORITY_CLASS); 阅读全文
posted @ 2011-02-18 20:49 81 阅读(284) 评论(0) 推荐(0) 编辑
摘要:最开始接触电脑时还是软盘启动的好像是什么PC机,语言好像是QBasic、dBase3。几年后决心学习编程时已是vb4,有次在书店里闲逛时还看到有人买vb3的书,清楚地记得那人说了句话:把这个学好就行了。 在学vb的同时,还学了些C,工具用的是TC2,不过TC2做不了Windows程序,自然就用了BCB,那时还是BCB3,用BCB主要是受一位朋友的影响,因为他也是用这个。就这样在工作中一直用vb和bcb,从vb4用到vb6,从bcb3用到bcb6。 从2003年开始转到C#上开发,原生的编程语言基本淡出了视野。在这个过程中,vb6之后变成了vb.net,bcb从6.0之后就没有7,8,9等,经 阅读全文
posted @ 2011-02-09 13:33 81 阅读(638) 评论(0) 推荐(0) 编辑
摘要:1. 调用标准system函数,如:system("net stop bservices");2. 使用WaitForSingleObject函数:void exec(AnsiString cmd){ STARTUPINFO si; ZeroMemory(&si, sizeof(si)); si.cb = sizeof(STARTUPINFO);PROCESS_INFORMATION pi;BOOL res = CreateProcess(NULL,cmd.c_str(), // 执行你的 dos 命令NULL,NULL,NULL,NORMAL_PRIORITY_CLASS | CREATE_ 阅读全文
posted @ 2011-02-01 09:27 81 阅读(371) 评论(0) 推荐(0) 编辑
摘要:Windows程序随系统启动而运行,并不需用户登录,在服务程序中如果想判断OS是否已有用户登录,怎么办呢?一个简单的方法是查询OS中是否已有“任务栏”窗口:HWND__ *wnd = FindWindow("Shell_TrayWnd", NULL);如果wnd==NULL则未登录。 阅读全文
posted @ 2011-02-01 09:08 81 阅读(384) 评论(0) 推荐(0) 编辑
摘要:char *SNAME = "Service1";//---------------------------------------------------------------------------void __fastcall TForm2::Button1Click(TObject *Sender){ SC_HANDLE scm=OpenSCManager(NULL,NULL, SC_MANAGER_CREATE_SERVICE); if (scm!=NULL){ SC_HANDLE svc=CreateService(scm, SNAME, SNAME,//Service名字 SE 阅读全文
posted @ 2011-01-28 14:37 81 阅读(302) 评论(0) 推荐(0) 编辑
摘要:New菜单项中有专门的线程模板,以下是模板生成的cpp:__fastcall myt::myt(bool CreateSuspended) : TThread(CreateSuspended){ FreeOnTerminate=true;}void __fastcall myt::xx(){ //---- Place thread code here ---- for(int i=1;i 4;i++) Form1-Edit3-Text = Form1-Edit3-Text+"我得" + this-xxx;}//----------------------------------- 阅读全文
posted @ 2011-01-28 12:47 81 阅读(432) 评论(0) 推荐(0) 编辑
摘要:[代码]以上代码需引用winsvc.h文件,为C++Builder2010编写,基本就是两个api,但不知为何所有的服务都列出来的,单单就是我用C++Builder2010写的一个服务程序无法找到?? 阅读全文
posted @ 2011-01-26 10:40 81 阅读(537) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示