- 博客(13)
- 资源 (2)
- 收藏
- 关注
原创 static 在函数中使用的注意事项
今日对温感值进行判断,某一个温感温度为215, 显然BMS报上来的值是不正常的,但是判断函数还是判了对,怎么回事呢?先来看一下判断函数:AppCompareTestResult(itoa(FuncTest.iQCTemp2), itoa(FuncTest.iTe - 3), itoa(FuncTest.iTe + 3), "%d", "E38"); 我们来看它的参数itoa(FuncTes
2017-10-25 17:12:12 1011
原创 WaitForSingleObject实际使用中犯的错
放电线程正在进行,这时点击停止放电按钮,触发函数App_StopThreadHandle(),但是线程并没有真正停止,还在运行:如果继续点击放电按钮对另一个包进行放电的话,到了一定时间(放电完成后的静置时间共20分钟)后放电会自动停止。先上App_StopThreadHandle()代码:void App_StopThreadHandle ( HANDLE *handleName, int *
2017-06-16 10:42:37 1793
原创 最近在开发中踩的坑--内存
最近软件在运行过程中总是弹出来一个有关内存的windows对话框框,一点“不发送”,软件就关闭了,很长时间debug才发现是有个字符串内存不够用,导致报错 char strFilename[80];改为 char strFilename[280];好用多啦!!!另外不知为什么 FILE *fp; fp = fopen(file,
2016-10-09 16:33:46 365
原创 再谈线程等待函数WaitForSingleObject和CloseHandle
多线程中使用WaitForSingleObject结束线程,啥也不说,先上代码#include #include #include int Fun1Proc( void ){ int i; char *c = "thread one " ; for(i = 0; i < 100; i++) { printf("%s number: %d \n",c ,i+1 ); }
2016-06-30 16:34:32 8543
转载 如何向线程函数传递多个参数?
我们先来看一个简单的程序:[cpp] view plain copy #include #include DWORD WINAPI ThreadFun(LPVOID pM) { printf("%s\n", pM); return 0; } int main()
2016-06-30 14:27:18 2668
原创 多线程文件操作时一定要注意的地方
首先看一下源代码#include #include void test(){ FILE *fp = fopen("d:\\aaa.txt", "a+"); fprintf(fp, "hello\n"); fclose(fp);} DWORD WINAPI ThreadFun(LPVOID pM){ test(); return 0;}int main()
2016-06-29 15:17:28 5429
转载 父线程退出后, 子线程会退出么?(我在Windows和Linux上都验证过)
我们来看一个常见的基本问题:父线程退出后, 子线程会退出么? 我不喜欢人云亦云, 一贯主张大胆假设, 小心求证,貌似有点实证主义色彩了, 不多说, 直接看程序:[cpp] view plain copy #include #include DWORD WINAPI ThreadFun(LPVOID
2016-06-01 10:58:37 1069
原创 C语言多线程的应用--局域网中多台计算机对同一文件读写
项目背景:生产制造型公司有多台生产测试设备同时运行,测试中产品错误代码记录在本地,现在需要将多台设备测试过程中出现的产品错误代码保存在局域网某台主机的公共文 件中步骤1:测试设备软件用的CVI9.0,不知怎么回事有部分代码就是编译不过,无奈只好换其他编译器把这部分代码写成.exe文件。代码功能:将本机MAC地址保存在.txt文件中供读取,因为设备是按MAC地址
2016-05-26 09:58:00 1715
原创 C++中强制转换float为int
最近遇到float 转换为int 的问题,先上个例子:#include"main.h"intmain(){floata=1.30;floatb=1.30;intx,y;floattmp;tmp=(a*100);x=(int)tmp;y=(int)(b*...
2016-05-13 11:25:56 13424 2
原创 线程的基本知识和使用方法
线程 - 基本操作派生:线程在进程内派生出来,它即可由进程派生,也可由线程派生。线程的状态与操作图册阻塞(Block):如果一个线程在执行过程中需要等待某个事件发生,则被阻塞。激活(unblock):如果阻塞线程的事件发生,则该线程被激活并进入就绪队列。调度(schedule):选择一个就绪线程进入执行状态。结束(Finish):如果一个线程执行结束,它的寄
2016-05-12 11:05:46 4158
转载 多线程在C、Win32和MFC下的使用方法
转自:http://www.vckbase.com/index.php/wv/1660一.前言线程是执行路径。一个进程至少要有一个线程,也可能包含多个线程。若进程关闭了,则在进程中所有的线程也自动被销毁。当我们在一个应用程序中创建一个线程时,实际上,它是第二个线程。在C或C++中,程序的入口函数是main或wmain(Unicode版本)。在windows的运用程序中,程序的入口点是W
2016-05-12 10:06:37 569
转载 VC线程安全退出的方法
1. 如果创建的线程属于阻塞类型的,比如线程函数中有套接字recv、sendto类似的操作,可能会死等着接收数据,这时想要退出该线程,只能用:BOOL TerminateThread( HANDLE hThread, DWORD dwExitCode ),强行终止该线程。事实上,也没有好办法了,因为该线程的while循环不“转”了!2. 如果创建的线程内wh
2016-05-12 10:05:20 4097
转载 C语言中内存分配
在任何程序设计环境及语言中,内存管理都十分重要。在目前的计算机系统或嵌入式系统中,内存资源仍然是有限的。因此在程序设计中,有效地管理内存资源是程序员首先考虑的问题。第1节主要介绍内存管理基本概念,重点介绍C程序中内存的分配,以及C语言编译后的可执行程序的存储结构和运行结构,同时还介绍了堆空间和栈空间的用途及区别。第2节主要介绍C语言中内存分配及释放函数、函数的功能,以及如何调用这些
2016-05-12 10:01:43 297
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人