
c++ builder
运动控制 数控 激光切割和焊接系统
c++ 运动控制
方案制定
界面设计
问题咨询
技术培训
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
三菱PLC slmp(mc)协议
//对于三菱PLC,可参考mx component5.0(详见以前的文章)通讯//本文自写解析协议。//本文在 c++ builder平台和FX5U调试成功#ifndef _SlmpProtocolClient_#define _SlmpProtocolClient_#include #include #include #include // using System.Net.Socket;class SlmpP...原创 2022-07-05 09:43:47 · 4629 阅读 · 1 评论 -
c++ builder wchar_t wcscpy wcscat wcout
//本文测试通过。#include <vcl.h>#include <windows.h>#include <iostream>using namespace std;int _tmain(int argc, _TCHAR* argv[]){ wchar_t str1[200]={0} ; wcscpy(str1,L"hello"); wcscat(str1,L"-world"); wcscat(str1,L"-you ...原创 2022-05-28 10:21:07 · 218 阅读 · 0 评论 -
c/c++ assert的头文件
#include <iostream>#include <assert.h>using namespace std;int writestr(const char *p){ assert(0!=p);//如果p等于0,则报错误 cout<<p<<endl;}int _tmain(int argc, _TCHAR* argv[]){ char *str="hello"; writestr(str); ...原创 2022-05-28 09:25:02 · 2698 阅读 · 0 评论 -
c/c++ sprintf sprintf_s
//sprintf和sprintf_s的区别是sprintf_s的第二参数指定缓冲区大小,避免溢出风险。#include <iostream>using namespace std;int _tmain(int argc, _TCHAR* argv[]){ char str[50]={0};char str2[50]={0}; sprintf(str,"%s","HuaTeng-Ma") ; cout<<sizeof(str2)<<end...原创 2022-05-28 09:13:57 · 3396 阅读 · 0 评论 -
c/c++ 整数当做布尔值
#include <iostream>int _tmain(int argc, _TCHAR* argv[]){ int result; result =0; printf("result=%d,result is %s\n",result,result?"true":"false"); result =-1; printf("result=%d,result is %s\n",result,result?"true":"false"); resul...原创 2022-05-20 09:20:43 · 292 阅读 · 0 评论 -
c++ builder 读写锁 ReadWriteLock
#include <iostream>#include <vector>#include <string>#include <thread>#include <mutex>#include<condition_variable>using namespace std;class ReadWriteLock{ private: int readWaiting = 0; //等待读 int write...原创 2022-05-18 14:20:35 · 203 阅读 · 0 评论 -
c++ builder 多线程 自定义锁类 MyLocker
//通过定义锁类,不用手动释放TCriticalSection指针//这样定义锁变量,MyLocker lock1;//在需要保护的资源前,lock1.Enter();//资源使用完毕,lock1.Leave();//本文在c++ builer 10.3 32/64位,及6.0版本调试通过。#if(__BORLANDC__<=1380) // 低版本#include <vcl.h>#include <SyncObjs.hpp>#else#includ原创 2022-05-16 16:51:40 · 516 阅读 · 0 评论 -
c++ builder windows 线程之信号量(Semaphore)
//本文在c++ builder 64/32位,6.0调试通过。#include <vcl.h>#include <stdio.h>#include <windows.h>#include <stdio.h>#define MAX_SEM_COUNT 10#define THREADCOUNT 12//定义信号量HANDLE ghSemaphore;//定义方法签名DWORD WINAPI ThreadProc( LPVOID );原创 2022-05-07 12:56:48 · 434 阅读 · 0 评论 -
c++ builder 10.3/6.0 String 转换成 char 数组
//前一篇文章中,介绍了10.3平台的String 转换成 char 数组,但欠完美。//本文介绍10.3和6.0两种平台的转换。//本文在10.3 64/32,6.0版本都调试通过。#include <vcl.h>#include <iostream>using namespace std;#if(__BORLANDC__<=1380) // 低版本#else // Earlier Versionsvoid TcharToChar(const ...原创 2022-05-02 10:21:40 · 1123 阅读 · 0 评论 -
c++ String 转换成char数组
#include <vcl.h>#include <windows.h>#include <tchar.h>#include <stdio.h>int _tmain(int argc, _TCHAR* argv[]){ char str[500]={0}; char *p=str; String S="Happy Birthday";//14个字符 int num=S.Length()*2; //注意这里要*2...原创 2022-04-29 11:10:50 · 2172 阅读 · 0 评论 -
c++ builder windows 线程之事件(event)
//本文描述的事件,是线程语境的事件(event)//本文在c++ buider 10.3 调试通过。#include<windows.h>#include<stdio.h>int product_buffer = 3;int product_num = 2;//定义事件句柄,由于在多个线程中使用,需定义为全局变量HANDLE hde_Producer,hde_Consumer;DWORD WINAPI Producer(LPVOID lpParameter原创 2022-04-05 13:37:10 · 1452 阅读 · 0 评论 -
c++ builder 使用windows 互斥量 (Mutex)
//在以前的文章中介绍了c++ builder 临界区,使用于同一进程,也就是一个应用程序中。//那么,mutex使用于跨进程场景,即不同的应用程序需要独占某种资源的场景。//本文种独占的资源是屏幕,当然也可以是文件,其它硬件等。//本文在c++ builder 10.3调试通过。//以下两个程序,编译后,找到exe文件,运行一个程序后,立刻运行另一个程序。//可以观察到,后运行的程序要等待先运行的程序打印完毕后,才在屏幕上打印。//程序A:#include <stdio.原创 2022-04-05 11:24:23 · 1162 阅读 · 0 评论 -
c++ builder6 使用windows 临界区(CRITICAL_SECTION )
//c++ builder TThread类有临界区,但是要写个类不爽。//直接使用windowsCRITICAL_SECTION 就便捷些。//本文在c++ builder 6调试通过。#include <stdio.h>#include <windows.h>const unsigned int THREAD_NUM = 50;unsigned int g_Count = 0;CRITICAL_SECTION cs; //声明关键段DWORD WINAPI..原创 2022-03-30 22:35:46 · 1073 阅读 · 0 评论 -
visual studio 生成的dll 转换成c++ builder 的lib
如果你遇到了,在visual studio 生成的动态链接库,*.lib文件放到c++ builder中调用的情况,本文能给你帮助。1. 32位dll:Generating an import library from a DLL:implib mydll.lib mydll.dllGenerating an import library from a .DEF file:implib mydll.lib mydll.dll2. 64位dllGenerating an原创 2022-03-16 15:27:50 · 1816 阅读 · 2 评论 -
c++ strlen 和sizeof 应用于字符串和字符指针
#include <iostream>using namespace std;int _tmain(int argc, _TCHAR* argv[]){ char str[50]="hello"; char *p=str; cout<<strlen(str)<<endl; cout<<sizeof(str)<<endl; cout<<strlen(p)<<endl; c...原创 2022-03-05 15:44:00 · 260 阅读 · 0 评论 -
c++ builer6 快捷键
发现ctrl+c ctrl+v用不了,改英文版:Tools->Editor Options->key mapping->default中文版:工具->编辑器选项->键盘映射->default设置后,ctrl+c ctrl+v就能用了原创 2022-03-04 10:59:24 · 572 阅读 · 0 评论 -
C++ builder Byte 数据类型
//本文在c++ builder 10.3和6.0调试通过//Byte 和 BYTE等效。#include <vcl.h>#include <iostream>using namespace std;#if(__BORLANDC__<=1380) // 低版本int main(int argc, char* argv[])#else // Earlier Versionsint _tmain(int argc, _TCHAR* argv[])#endif原创 2022-03-03 14:32:14 · 333 阅读 · 0 评论 -
c++ builder 打印字符串的ASC码
//本文在c++ builer 6.0 和10.3调试通过。//在屏幕上以10进制和16进制打印。#include <vcl.h>#include <iostream>using namespace std;#if(__BORLANDC__<=1380) // 低版本#include <SysUtils.hpp>#include <cassert>#else // Earlier Versions#include <S...原创 2022-03-03 11:55:40 · 508 阅读 · 0 评论 -
c c++ 自写字符串连接函数
//本文在c++ builder 10.3调试通过#include <iostream>using namespace std;int Mystrlen(const char * str){assert(str!=NULL);int len=0;while(*str){str++; len++;}return len;}char * Mystrcat(char * dest, const char * source)//有返回值{assert(dest!=...原创 2022-03-03 09:43:38 · 324 阅读 · 0 评论 -
C++ builder TServerSocket 组件
//本文在c++ builder 10.3调试通过。//在以前的文章中介绍了标准的windows socek,本文介绍使用TServerSocket 组件,做服务端。//1.安装组件//Component->Install Packages->Add->弹出文件选择框->找到 dclsockets260.bpl->打开->Save//2.新建窗体项目//2.1在窗体上放置一个TShape组件(Palette->Addtional->TSha原创 2022-03-02 21:08:29 · 1137 阅读 · 0 评论 -
c++ builder 调用动态库 显示加载
//先将库文件拷贝到项目文件夹#include <iostream>using namespace std;int _tmain(int argc, _TCHAR* argv[]){ HINSTANCE hHandle; typedef float (__stdcall *MY_FUNC)(float,float); MY_FUNC func; hHandle=LoadLibraryW(L"Mydll.dll"); if (hHandle==...原创 2022-02-28 18:06:48 · 327 阅读 · 0 评论 -
c++ builder 调用动态库 隐式加载dll方式
1.新建exe项目文件2.将动态库的dll文件和lib文件(*.lib或者*.a)复制粘贴到本项目文件夹(前面文章生成了Mydll的库文件)3.写如下文件,#include <iostream>using namespace std;extern "C" float __declspec(dllexport) __stdcall sum(float a,float b);int _tmain(int argc, _TCHAR* argv[]){ cout<..原创 2022-02-28 18:00:15 · 786 阅读 · 0 评论 -
c++ builder 创建动态库
1.新建工程对于c++ builder 10.3 ,new->other->Dynamic Library->ok2.保存工程对于c++ builder 10.3,File->Save project As ,保存工程名为Mydll3.添加 函数extern "C" float __declspec(dllexport) __stdcall sum(float a,float b){ return a+b;}4.Make项目,在项目文件夹下..原创 2022-02-28 17:45:22 · 442 阅读 · 0 评论 -
c++ builder 调用静态库
在前面的文章中,描述了如何生成静态库,本文描述怎样调用静态库。1.先建立一个控制台项目文件2.将静态库文件拷贝到项目文件下3.导入静态库到项目,有以下两种方法(1)project->add to project->选择拷贝的静态库 (2) #pragma comment(lib,"xx.lib")4.编写测试文件,比如#include <iostream>using namespace std;//#pragma comment(lib,"x..原创 2022-02-28 10:11:41 · 836 阅读 · 0 评论 -
c++ builder 创建静态库 初探
1.新建静态库项目(1)对于c++ builder 6.0,文件->新建->其它->Libray(如下图)->确定(2)对于c++ builder 10.3 ,file->new->other-Static Libary(如下图)->ok2新建文件(1)对于c++ builder 6.0,文件->新建->其它->cpp File(如下图)->确定(2)对于c++ builder 10.3,file->ne原创 2022-02-28 09:24:31 · 636 阅读 · 0 评论 -
C++ Builder 杂项
C++ Builder 杂项_xxxl的专栏-CSDN博客转载 2022-02-26 08:37:38 · 102 阅读 · 0 评论 -
c++builder 中关于#pragma使用整理
C++ Pragma 预处理指令_陈卫东的专栏-CSDN博客转载 2022-02-25 17:22:01 · 129 阅读 · 0 评论 -
c++ builder 静态库 扩展名
1. 在windows 32 ,静态库扩展名为 lib2. 在 wiindows 64 或苹果 OS X,静态库扩展名为 a3. OS Device and Android ,<package>lib.a以上来自c++ builder帮助文档:搜索->键入关键字进行查找:comile->选择:API (*.lib, *.a)...原创 2022-02-25 10:03:54 · 554 阅读 · 0 评论 -
C++ builder 6.0 F1013
今日遇到F1013问题,用如下办法编译通过。Project->Options->Directories/Conditionals里面有个Intermediate output ;表示cpp 等文件编译出来的*.obj 保存的目录它的目录不可用或不存在,所以编译时会提示你Error writing output file将它设为Obj(表示*.obj生成于工程的Obj子目录下) 或为空(表示*.obj直接生成在工程目录下)...转载 2022-02-22 11:59:15 · 241 阅读 · 0 评论 -
c++ builder 6 两个线程分别读写 ini文件
////本文在c++ builder 6.0平台调试通过#include <vcl.h>#include <fstream>#include <syncobjs.hpp>// TCriticalSection 需要这个头文件#include <inifiles.hpp>#include <MyThread1.h>#include <MyThread2.h>#include <iostream> //...原创 2022-02-21 15:31:46 · 621 阅读 · 0 评论 -
c++ builder 10.3 两线程读写ini文件 demo
//在实际工作中,常常遇到多线程读写同一文件的问题。//如果读写的ini文件,本文能给你帮助。//本文在c++ builder 10.3 平台调试通过。#include <iostream> // std::cout#include <thread> // std::thread#include <mutex> // std::mutex#include <fstream>#include <i...原创 2022-02-21 10:33:05 · 514 阅读 · 0 评论 -
c++ builder 得到程序运行的实例数量
//在多个程序交互运行时,常常出现一些问题。//比如应用程序A,B,A与B有交互。如果B运行了几个实例,可能出现一些问题。//本文为此目的而写。//本文在10.3 64/32,6.0版本都调试通过。#include <vcl.h>#include <windows.h>#include <stdint.h>#include <tlhelp32.h>#include <iostream>#include <vector原创 2022-02-18 13:21:18 · 362 阅读 · 0 评论 -
c++ builder 混用AnsiString和c_str()的安全问题
混用AnsiString和c_str()的安全问题 _SunJerdege-CSDN博客转载 2022-02-15 15:50:08 · 242 阅读 · 0 评论 -
c++ builder Api 串口 demo 发送数据
//调试通过#include <vcl.h>#include <windows.h>#include <iostream>using namespace std;HANDLE hComm;bool InitSerialPort(){ DCB dcb; String ComNo ="COM1"; //串口(COM1) 通信初始化 hComm =CreateFile (ComNo.c_str(),GENERIC_READ |GENERIC...原创 2022-02-14 00:15:24 · 899 阅读 · 0 评论 -
c++ builder 文本框输入智能提示及上下限
1.智能提示当用户鼠标移动到文本框时,出现文本输入范围提示。(1)提示的内容:Hint="50~500";(2)使能智能提示:ShowHint=true;2.上限void __fastcall TForm7::Edit1Change(TObject *Sender){ int iMax = 500;//首先设置上限值 int n=0; if (Edit1->Text != NULL && Edit1->Text !=...原创 2022-02-11 16:19:07 · 970 阅读 · 0 评论 -
c++ builder 比较文本文件内容是否相同
//有需要比较两个文本文件内容是否相同的情况,比如参数等,方法:逐行比较#include <vcl.h>#include <fstream>#include <iostream>using namespace std;bool FileCompare(String file1,String file2)//比较函数{ char buffer[2000];char buffer2[2000];//每行都读到字符串数组, int LineMaxle...原创 2022-02-10 15:36:07 · 1217 阅读 · 0 评论 -
C++ Builder 全部API
C++ Builder 全部API1. API 之网络函数WNetAddConnection 创建同一个网络资源的永久性连接WNetAddConnection2 创建同一个网络资源的连接WNetAddConnection3 创建同一个网络资源的连接WNetCancelConnection 结束一个网络连接WNetCancelConnection2 结束一个网络连接WNetCloseEnum 结束一次枚举操作WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连转载 2022-02-09 18:47:07 · 469 阅读 · 0 评论 -
c++ builder 文件复制 CopyFile
//在c++ builder 10.3和6.0调试通过#include <vcl.h>#include <windows.h>int main(int argc, char* argv[]){if (FileExists(ASource)) {CopyFile("d:///test111//test333.ini","d://test333.ini", FALSE);//false代表覆盖,true不覆盖 } return 0;}...原创 2022-02-09 14:28:40 · 952 阅读 · 0 评论 -
c++ stat函数获取文件状态(包括修改时间等)
//stat函数不需要打开文件也能获取文件状态信息,对修改时间无影响,比GetFileTime函数好。//前一篇文章的GetFileTime也可获取修改时间,但需要打开文件,打开文件影响修改时间,不推//荐使用GetFileTime函数。#include <iostream>#include <time.h>#include <sys/stat.h>using namespace std;int _tmain(int argc, _TCHAR* argv[]原创 2022-02-08 18:33:00 · 3060 阅读 · 0 评论 -
c++ builder 文件管理函数
#include <iostream>#include <System.SysUtils.hpp>#include <fstream>using namespace std;int _tmain(int argc, _TCHAR* argv[]){ bool IsCreated=CreateDir("d:\\test111");//创建目录 cout<<IsCreated<<endl; //先人工在 "d:\\test11...原创 2022-02-08 17:47:35 · 484 阅读 · 0 评论