C
文章平均质量分 77
百鸣
这个作者很懒,什么都没留下…
展开
-
dll文件的加载顺序
程序的运行要去加载所需要的dll文件,在程序运行的时候往往会遇到dll找不到的问题,或者不能确定所加载的dll文件是否是自己所需要的dll,遇到dll出问题的时候往往会不知所措,但是一旦知道了dll的加载顺序,按这个去查找解决就会方便和得心应手了。(声明下面的东西是本人从网上整理下来的,供参考学习)。(1)先搜索可执行文件所在路径,再搜索系统路径:%PATH%(环境变量所配置的路径)一般P原创 2012-05-28 19:53:04 · 6666 阅读 · 1 评论 -
c和c++变量的存储
一.首先, 在c中分为这几个存储区 1.栈 - 由编译器自动分配释放 2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。- 程序结束释放 4.专门放字符串常量的地方。- 程序结束释放 5 程序代码区转载 2012-10-08 11:02:23 · 1154 阅读 · 0 评论 -
C/C++语言中的main函数,参数argc,argv的作用
C/C++语言中的main函数,经常带有参数argc,argv,如下:int main(int argc, char** argv) int main(int argc, char* argv[])这两个参数的作用是什么呢?argc 是指命令行输入参数的个数,argv存储了所有的命令行参数。假如你的程序是hello.exe,如果在命令行运行该程序,(首先应该在命令行下用 cd 命令进入到转载 2012-10-08 11:23:40 · 1869 阅读 · 0 评论 -
TCHAR和char 的相互转化
没有定义UNICODE,所以它里面的字符串就是简单用" "就行了,创建工程的时候包含了UNICODE定义,就必须对TCHAR和char进行转换。首先是把TCHAR转为char[cpp] view plaincopyprint?//将TCHAR转为char //*tchar是TCHAR类型指针,*_char是char类型指针 TcharToChar转载 2012-10-31 10:35:00 · 993 阅读 · 0 评论 -
vector作为参数传递到dll问题
最近的一个项目中遇到了调用别人的sdk接口(dll库)而传给我的是一个vector指针,用完之后还要我来删除的情况。这个过程中首先就是在我的exe中将其vector指针转为相应指针再获取vector中相应的数据问题,始终都获得不了正确的数据,要么就是一些非法的数据;另一个问题就是delete这个指针时候会产生相应异常(针对这个问题的思考:如果EXE和DLL都链接到DLL的C/C++运行期库,那么代转载 2012-12-10 16:00:53 · 9559 阅读 · 2 评论 -
各种类型的DLL
(一)DLL和EXE的区别:尽管 DLL 和应用程序都是可执行的程序模块,但它们之间有若干不同之处。对于最终用户来说,最明显的差异在于 DLL 不是可直接执行的程序;从系统角度讲,应用程序和 DLL 之间有两个基本差异: 应用程序可有多个同时在系统上运行的实例,而 DLL 只能有一个实例。应用程序可以拥有堆栈、共用内存、文件句柄、消息队列这样的事物,而 DLL 不能转载 2012-12-11 16:48:38 · 944 阅读 · 0 评论 -
win32 的DLL中创建windows窗口
因工作需要,需要写一个DLL,在DLL中创建windows窗口,网上有很多关于DLL创建窗口的文章,不过是基于MFC的, 却鲜见直接用win32的DLL创建的。研究调试了一下,实现了在win32 DLL中创建窗口,集结成文,分享一下。 实际上,用win32 DLL创建窗口有一个问题: 1.CreateWindow用到的HINSTANCE从哪里来? 答:使用DllM转载 2012-12-12 11:25:27 · 2651 阅读 · 0 评论 -
setsockopt设置socket状态
1.closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:BOOL bReuseaddr=TRUE;setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL));2. 如果要已经处于连接状态的soket在调用closesocket后强制关闭,不经历转载 2013-06-07 10:03:37 · 859 阅读 · 0 评论 -
从零开发一个产品记录2013年
详细设计之后就是项目的任务的划分,此时乃是荣耀和光荣的时刻,倾向于c++的内部实现的划分,好处是参与的人的都比较的了解和认可如此的分法,划分的模块也是比较的独立性,坏处项目专员不太了解,小心大家的分被她给克扣了,任务划分之后,项目专员的时间计划为此项目的时间把控乃至接下来的项目的时间安排和小团队的协作都至关重要,在一定程度上也可以激励我等比较合理准时的完成项目,对于领导来说也可以通过次感受项目的进度,看什么时间可以得到他的3S服务器,哈哈,嘘,领导再一次被调侃。目前来说我等走的是项目管理中的瀑布模型吧。原创 2014-06-03 09:51:39 · 935 阅读 · 0 评论 -
select, iocp, epoll,kqueue及各种I/O复用机制
看到一篇对各种I/O模型讲得比较简单易懂的文章,转载了,呵呵~~ 文章出处: http://blog.csdn.net/shallwake/archive/2010/01/28/5265287.aspx 首先,介绍几种常见的I/O模型及其区别,如下:blocking I/Ononblocking I/OI/O multiple转载 2015-01-07 10:24:56 · 846 阅读 · 0 评论 -
windows 一个进程(Process)最多可以生成多少个线程(Thread)
1.进程中创建线程的限制默认情况下,一个线程的栈要预留1M的内存空间,而一个进程中可用的内存空间只有2G,所以理论上一个进程中最多可以开2048个线程,但是内存当然不可能完全拿来作线程的栈,所以实际数目要比这个值要小。#define MAX_THREADS 50000#include Windows.h>#include stdio.h>DWORD WINAPI T转载 2015-11-07 08:58:55 · 10446 阅读 · 0 评论 -
C/C++ 服务端性能评测和检测优化工具
硬件服务器的稳定性 可以通过烤机软件:随便网上搜个跑跑看,顺便统计下网路的稳定性服务器端程序的优化评测:英特尔工具套件1、Intel Parallel Amplifier2、 VTune Performance Analyzer3、 Intel Thread Profilergprof gnu的profiling工具,会告诉你每个函数调用时间,以及占用的百分比。上网转载 2016-03-23 23:22:48 · 2364 阅读 · 0 评论 -
Windows中的进程的Working Set,Private Bytes和Virtual Bytes (2015-09-24 14:32:23)
内部布局和优化,VirtualSize Private Size WorkingSet转载 2016-12-19 15:39:08 · 1374 阅读 · 0 评论 -
解决socket交互的10048和10055错误的总结
问题:60多路轮训的情况下,5分钟之后,现场报链接不上子进程的错误。绝大部分为海康设备分析:子进程的日志中 存在输入海康的解码库的错误,在子进程的对外dll中加日志发现,socket链接的时候存在10048(通常每个套接字地址(协议/网络地址/端口)只允许使用一次)的错误。公司重现的情况还存在10055(由于系统缓冲区空间不足或列队已满,不能执行套接字上的操作 )的错误。10055原创 2017-01-24 10:37:28 · 8758 阅读 · 2 评论 -
IE8 /IE9 VS2003 C# ASP.NET c++ 断点 不能 无法调试 断点失效
解决:(原文) IE 8 has a feature called Loosely-Coupled Internet Explorer (LCIE) which results in IE running across multiple processes.http://www.microsoft.com/windows/internet-explorer/beta/readiness转载 2012-10-08 11:14:57 · 2500 阅读 · 0 评论 -
GDI+往jpg图片文件里面添加属性值
最近有个项目需求:1.如果图片是非jpg格式的如bmp格式的则将bmp格式的图片文件转为;2.往jpeg图片中添加两个属性值用来以读取属性值进行图片的分类查找等操作;所实现的功能简单,所以就用了c++的GDI+库。但是在实现的过程中确实遇到了不少奇怪的问题:(1)首先是将所需要的头文件和lib库导入工程:#include #include #include usin原创 2012-08-13 12:33:30 · 1668 阅读 · 0 评论 -
c/c++ 获取文件的属性
【Kenmark】:http://topic.csdn.net/t/20021127/11/1209086.htmlhttp://topic.csdn.net/t/20020613/19/801649.htmlhttp://topic.csdn.net/t/20020918/09/1032607.html【nevergone】:GetFileAttributes【K转载 2012-05-30 09:31:13 · 9404 阅读 · 0 评论 -
三十分钟掌握STL
三十分钟掌握STL这是本小人书。原名是《using stl》,不知道是谁写的。不过我倒觉得很有趣,所以化了两个晚上把它翻译出来。我没有对翻译出来的内容校验过。如果你没法在三十分钟内觉得有所收获,那么赶紧扔了它。文中我省略了很多东西。心疼那,浪费我两个晚上。译者:karycontact:karymay@163.netSTL概述STL的一个重要特点是数据结构和算法的分离。尽转载 2012-06-01 09:13:17 · 567 阅读 · 0 评论 -
模态窗口创建非模态窗口,MFC定时器完成对一个文件的监测,定时刷新窗口
初次用MFC,对所做的小东西做个总结,大部分都是从网上学习的,希望对读到的人有稍微的帮助1.要创建的非模态窗口:继承于CDHtmlDialog#define WM_USER_DVRERRWND_CLOSE WM_USER + 1001BOOL CDDvrLoginErrMessHtmlDialog::OnInitDialog(){ CDHtmlDialog::OnInitD原创 2012-06-04 22:39:46 · 2030 阅读 · 0 评论 -
C/C++预编译头的概念
预编译头的概念:所谓的预编译头就是把一个工程中的那一部分代码,预先编译好放在一个文件里(通常是以.pch为扩展名的),这个文件就称为预编译头文件这些预先编译好的代码可以是任何的C/C++代码--------甚至是inline的函数,但是必须是稳定的,在工程开发的过程中不会被经常改变。如果这些代码被修改,则需要重新编译生成预编译头文件。注意生成预编译头文件是很转载 2012-06-14 18:00:01 · 8812 阅读 · 0 评论 -
error C2065: “IDOK” : 未声明的标识符
今天处理MFC工程的时候不知怎么搞的就出现了error C2065: “IDOK” : 未声明的标识符这样一个错误,在#include "resource.h"中添加#define IDOK 1是可以解决问题的,添加编译通过之后,是成功的,但是再删除之后就不行了。纠结啊,在网上搜了很多资料,有几个相关的但是方法都不真正的解决问题的。我用的编译器是vs2003 IDOK的定义不是在这里的而是在W原创 2012-06-14 20:27:54 · 1823 阅读 · 0 评论 -
extern "C" 与 __stdcall使用
xtern "C" __declspec (dllexport) char* __stdcall SQLFetch(const char* fieldname);C語言中extern cc与c++程序连接问题 它们之间的连接问题主要是因为c c++编绎器对函数名译码的方式不能所引起的,考虑下面两个函数 /* c*/ int strlen(char* string) { ...转载 2012-06-18 09:53:25 · 6472 阅读 · 0 评论 -
关于typedef的用法总结
关于typedef的用法总结 不管实在C还是C++代码中,typedef这个词都不少见,当然出现频率较高的还是在C代码中。typedef与#define有些相似,但更多的是不同,特别是在一些复杂的用法上,就完全不同了,看了网上一些C/C++的学习者的博客,其中有一篇关于typedef的总结还是很不错,由于总结的很好,我就不加修改的引用过来了,以下是引用的内容(红色部分是我自己写的内容)。转载 2012-07-05 13:17:39 · 487 阅读 · 0 评论 -
并不包含调试信息(未加载任何符号)
今天调试一C++程序,按下F5,老是弹出一对话框显示信息:debugging information for 'myproject.exe' cannot be found or does not match. No symbols loaded. 翻译成中文大概就是:不能找到'myproject.exe' 的调试信息或者调试信息不匹配。符号文件未加载。起初,我以为是没有生成.pdb文转载 2012-06-21 18:07:47 · 25964 阅读 · 9 评论 -
时间转换函数
一、定义自定义的时间格式MYtime struct tm使用不方便,自定义时间格式MYtime方便显示。 struct MYtime{ int m_iSec; /* = int tm_sec; tm seconds after the minute - [0,59] */ int m_iMin; /* = int tm_min; tm转载 2012-07-05 13:05:02 · 6836 阅读 · 0 评论 -
c和c++变量的存储
一.首先, 在c中分为这几个存储区 1.栈 - 由编译器自动分配释放 2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。- 程序结束释放 4.专门放字符串常量的地方。- 程序结束释放 5 程序代码区转载 2012-07-05 13:08:26 · 797 阅读 · 0 评论 -
#include"" 在头文件之前包含其他头文件与在源文件前包含头文件有什么区别
在头文件之前包含其他头文件与在源文件前包含头文件有什么区别相同点:头文件与源代码都是源文件,都用纯文本文件存储,都需要遵照C/C++语言规范来写,都可以使用类型定义和常、变量定义,都可以包含函数的声明和实现,都能包含宏定义,都使用相同的调用规范。不同点:C/C++的编译器规定源代码文件必须包含函数入口,即main函数,或者winmain函数。而头文件不得转载 2012-07-05 13:09:51 · 2284 阅读 · 0 评论 -
C++头文件和源文件的关系
一、源文件如何根据#include来关联头文件 1,系统自带的头文件用尖括号括起来,这样编译器会在系统文件目录下查找。 #include 2,用户自定义的文件用双引号括起来,编译器首先会在用户目录下查找,然后在到C++安装目录(比如VC中可以指定和修改库文件查找路径,Unix和Linux中可以通过环境变量来设定)中查找,最后在系统文件中查找。 #include “xxx.h”转载 2012-07-05 13:19:27 · 3016 阅读 · 0 评论 -
Visual Studio中的文件类型(sln vcproj suo user ncb)
Net解决方案下 .sln文件和.suo文件的解释:When a Web site is created, a solution file (.sln) and a hidden solution user options file (.suo) are created. By default, these files are created in the My Documents\Vis转载 2012-06-26 13:45:34 · 5228 阅读 · 2 评论 -
c++/C 获得文件的属性文件真实修改之后再更新内存
【Kenmark】:http://topic.csdn.net/t/20021127/11/1209086.htmlhttp://topic.csdn.net/t/20020613/19/801649.htmlhttp://topic.csdn.net/t/20020918/09/1032607.html【nevergone】:GetFileAttributes【K转载 2017-01-24 10:40:26 · 731 阅读 · 0 评论