WINDOWS核心编程
文章平均质量分 56
okzuhedu
每一份血汗,都增加一份积累
展开
-
VLD在VS2019中的使用以及应用程序无法正常启动(0xc0150002)
Visual LeakDetector(VLD)是一款用于Visual C++的免费的内存泄露检测工具。但是在使用时可能会发生一些错误,可能是因为VLD的版本问题。有时候项目运行时会发生以下两个错误:1、运行提示,“无法启动此程序,因为计算机中丢失vld_x64.dll”2、运 行提示,“应用程序无法正常启动(0xc0150002)”今天再次使用发现启动一直报错,然后翻阅以前使用的案例发现有几个dll没有添加,原来是依赖项不全。以前没有发现这个问题是由于安装的vld,本次只是把inc原创 2022-02-09 16:50:19 · 2596 阅读 · 1 评论 -
Notepad++如何添加到右键菜单
notepad++是我们经常使用的文本工具,一般的软件在菜单中都有设置可以添加到右键菜单,但是我却怎么都找不到notepad++如何设置,只能通过直接写入注册表的方式完成,当然此方法简单实用,暂时只找到这一个方法,不过确实好用。直接使用notepad++创一个新文件,然后写入下面的代码:Windows Registry Editor Version 5.00[HKEY_CL原创 2016-05-30 18:32:59 · 1901 阅读 · 0 评论 -
IOCP原理补充说明!
要想彻底征服IOCP,并应用好IOCP这个模型,首先就让我们穿越到遥远的计算机青铜器时 代(以出现PC为标志),那时候普通的PC安装的还是DOS平台,微软公司主要靠这个操作系统在IT界的原始丛林中打拼,在DOS中编写程序,不得不与很 多的硬件直接打交道,而最常操作的硬件无非是键盘、声显卡、硬盘等等,这些设备都有一个特点就是速度慢,当然是相对于PC平台核心CPU的速度而言,尤其 是硬盘这个机械电子设转载 2016-03-24 14:01:33 · 299 阅读 · 0 评论 -
后台开发面试
前段时间专心面过腾讯,经过了N轮的技术面,结果还是挂了,但没挂在技术面,比较欣慰,回来之后写一点总结,以供有梦想进入腾讯做后台服务器开发的同学参考,本文章为胡成精心总结,胡成原创,copy和转载请通知。ps:()之内的文字由作者点评,非面试题文字。linux和os:netstat tcpdump ipcs ipcrm (如果这四个命令没听说过或者不能熟练使用,基本上可以回家,通过的转载 2015-03-13 10:32:31 · 516 阅读 · 1 评论 -
beginthread和beginthreadex的使用方法
beginthread和beginthreadex的使用方法建立一个线程。unsigned long beginthread(void(cdecl *startaddress)(void*),unsigned stacksize, void *arglist);unsigne dlong beginthreadex(void *security,unsigned转载 2015-03-02 15:19:48 · 1467 阅读 · 0 评论 -
<windows核心编程>动态链接库(一)
自出版Windows操作系统以来,动态链接库(DLL)一直是这个操作系统的基础。Windows API中所有的函数都包含在DLL中,3个最重要的DLL是Kernel32.dll:它包含用于管理内存、进程和线程的各个函数;User32.dll,它包含用于执行用户界面任务(如窗口的创建和消息的传送)的各个函数;GDI32.dll, 它包含用于画图和显示文本的各个函数。DLL :dyna原创 2014-02-12 00:34:23 · 900 阅读 · 0 评论 -
完成端口总结(二)
C++最后都是要形成动态库的,以下是一些我认为比较重要的东西。欢迎探讨! 写这个库呢!中间涉及到一些最基本的东西主线程和线程并行、头文件互相引用循环问题。为什么要说呢,因为这些东西不但遇到了,还给自己造成很大的麻烦,所以记下来引以为戒!并行就是线程在做一些事情,打个比方你父亲是主线程,他在做饭炒菜,你是副线程,叫你拿酱油,而他还在炒菜,你拿酱油给他后,他会把酱油放入到菜里面去,中间的过原创 2013-12-16 00:42:00 · 718 阅读 · 0 评论 -
关于一些辅助库的thread(二)
thread库用起来还是比较简单、快捷的,只需要继承一下,就可以直接应用,个人感觉比较爽。建立thread类,里面包括构造函数,virtual析构函数,构造函数主要是初始化一些数据,比如句柄和threadID,还有两个bool状态成员。析构主要就是回收HANDLE.然后是开始函数Start,里面主要应用_beginthreadEx,已经有一个文章里面专门介绍了一下他,可以看一下,主要和原创 2014-02-05 15:00:25 · 710 阅读 · 0 评论 -
关于main还是的参数应用
vc中有两种方式应用main函数中的参数一是:直接设置property里面的debugging选项里面有Command Arguments(命令参数)可以直接写你想要的参数。 int argc 表示参数的个数,当然他是从本程序名开始算起,如此, 就包含xxx.exe 参数1,参数2,参数3. 实际的argc参数的值就是 4,他表示的参数的个数+1(程序名称) _TCHAR* argv[]原创 2014-02-01 22:41:17 · 550 阅读 · 0 评论 -
错误统计(如何处理)
unresolved external symbol _main referenced in function ___tmainCRTStartup,在vcbuilt时,出现此错误,可能是由于更改正常函数的main名称导致链接错误。可以Project->properties->linker->system->subsystem 里面的设置是console,但是非标准的main则应该该原创 2014-02-02 10:59:22 · 775 阅读 · 0 评论 -
关于线程小模块的前提介绍_beginthreadex
_beginthreadex在MSDN中的定义:uintptr_t _beginthreadex( void *security, 安全属性:NULL表示默认安全属性 unsigned stack_size, 指定线程堆栈的大小,0表示和创建他的线程同样大小,一般为0 unsigned (原创 2014-01-23 16:13:57 · 629 阅读 · 0 评论 -
完成端口总结(一)
这两天粗略的学习了完成端口的简单应用今天把他记下来!首先说一下主要用到的API函数,当然主要是关于完成端口的:最主要的一个函数CreateIoCompletionPortHANDLE WINAPI CreateIoCompletionPort(__in HANDLE FileHandle, //关联文件句柄__in_opt HANDLE Exi原创 2013-12-16 00:36:57 · 744 阅读 · 0 评论 -
SOCKET选项和管理(一)
这里主要涉及函数比较多,所以简单先写一下,以后陆续补齐。套接字一旦建立,通过套接字选项和I/O控制命令对各种属性进行操作,便可以对套接字的行为产生影响。可以增加或者去除套接字的某些功能。有的选项只用于信息的返回,而有的选项则可在应用程序中影响套接字的行为,I/O控制命令肯定会对套接字的行为产生影响。如此就有必要设置一下套接字属性。主要涉及到的是四个函数:getsockopt,setsock原创 2013-12-05 14:39:09 · 665 阅读 · 0 评论 -
关于利用Tcp库来实现文件传输
文件传输主要是学习文件处理的windows API函数、数据结构操作和 string操作。首先应用库来建立一个服务器和一个客户端,都是单线程。服务器说明:建立一个结构体tTransFilestruct tTransFile{ int nLen; int nIdx; char szFileName[255]; UINT32 uFileSize;原创 2013-11-28 21:50:01 · 1051 阅读 · 0 评论 -
直接用域名取网络地址操作
主要用到的结构体struct hostentstructhostent { char*h_name; //地址正式名称 char**h_aliases; //空字节-地址的预备名称的指针或者是域名别称。 inth_addrtype; //地址类型,主要是AF_原创 2013-11-26 00:55:08 · 737 阅读 · 0 评论 -
关于htons和ntohs(网络顺序和主机顺序)
今天主要是再次熟悉一下网络顺序和主机顺序的实现方法。htons和ntohs,htonl和htonl。htonl()——"Host to Network Long"ntohl()——"Network to Host Long"htons()——"Host to Network short"ntohs()——"Network to Host short"网络字节顺序(Network原创 2013-11-26 00:14:49 · 1021 阅读 · 0 评论 -
WINSOCK I/O方法(WSAEventSelect )
主要涉及的WSAAPI函数一、信号对象创建一个初始状态为失信的匿名的需要手动重置的事件对象。WSAEVENT WSAAPI WSACreateEvent( VOID );返回值:如果函数成功,则返回值即是事件对象的句柄。如果函数失败,返回WSA_INVALID_EVENT。应用程序可通过调用WSAGetLastError()函数获取进一步的错误信息:WSANOTINIT原创 2013-11-22 23:43:40 · 922 阅读 · 0 评论