- 博客(23)
- 资源 (4)
- 收藏
- 关注
转载 培训资料-Socket编程知识
最近要给同事培训socket的相关知识,在网上找了一些资料,觉得挺好,保存下来。端口号常识: 端口号被从1 开始分配。 通常端口号超出255 的部分被本地主机保留为私有用途。 1到255 之间的号码被用于远程应用程序所请求的进程和网络服务。 每个网络通信循环地进出主计算机的TCP 应用层。它被两个所连接的号码唯一地识别。这两个号码合起来叫做套接字. 组成套接字的这两个号码就是机器的IP 地址和TCP 软件所使用的端口号。套接字的三种类型 流式套接字(SOCK_ST
2010-12-30 10:55:00 563
转载 在DLL中使用资源
<br /><br />现在最常看见的关于DLL的问题就是如何在DLL中使用对话框,这是一个很普遍的关于如何在DLL中使用资源的问题。这里我们从Win32 DLL和MFC DLL两个方面来分析并解决这个问题。<br /> <br /> <br /> <br />1.Win32 DLL<br /> <br /> 在Win32 DLL中使用对话框很简单,你只需要在你的DLL中添加对话框资源,而且可以在对话框上面设置你所需要的控件。然后使用 DialogBox或者CreateDialog这两个函数(或相同作
2010-12-15 15:37:00 571
原创 DLL 对C++类的封装
将C++类封装在DLL中,并在DLL中创建静态对象,在外部直接调用相关函数。1, 打开VC2008创建新工程,选择Win32-> Win32 Porject,点击next。2, 选择Application type:DLL,点击finish即创建了一个非MFC DLL------------------------------------因为我们创建的是非MFC的DLL,所以需要定义一些宏,表示导出:1,新建TestWin32DLL.h 在TestWin32DLL.h 中定义#ifdef UQ_EXP
2010-12-14 15:01:00 3316 1
转载 DLL封装 C++
<br /><br />DLL,在windows和linux下都用,但是不太相同,因为微软的DLL的内存分配和普通编译成为函数之间的内存格式是不一样的,于是有了__declspec(dllexport)和__declspec(dllimport) ,前者输出DLL中的函数,后者调用的时候使用;相信在windows底下封装过DLL经验的人对于这两个东西还是很熟悉的。偶尔去掉它们,其实也不一定会出问题,但是在多线程的重复调用DLL时,就会有问题的。对于Windows和linux统一版本的DLL的封装就可以用下面
2010-12-13 16:24:00 785
转载 DLL(动态链接库)专题
<br /> <br /> Windows API中所有的函数都包含在dll中,其中有3个最重要的DLL。<br /> (1) Kernel32.dll<br /> 它包含那些用于管理内存、进程和线程的函数,例如CreateThread函数;<br /> (2) User32.dll<br /> 它包含那些用于执行用户界面任务(如窗口的创建和消息的传送)的函数,例如CreateWindow函数;<br /> (3) GDI32.dll<br
2010-12-13 16:16:00 531
转载 VC++动态链接库编程之非MFC DLL
<br /> <br />4.1一个简单的DLL <br /><br /> 第2节给出了以静态链接库方式提供add函数接口的方法,接下来我们来看看怎样用动态链接库实现一个同样功能的add函数。<br /> 如图6,在VC++中new一个Win32 Dynamic-Link Library工程dllTest(单击此处下载本工程)。注意不要选择MFC AppWizard(dll),因为用MFC AppWizard(dll)建立的将是第5、6节要讲述的MFC 动态链接库。<br />图6 建立一个非MFC D
2010-12-13 16:13:00 473
转载 VC++动态链接库编程之MFC规则DLL
<br /> <br />第4节我们对非MFC DLL进行了介绍,这一节将详细地讲述MFC规则DLL的创建与使用技巧。 <br /><br /> 另外,自从本文开始连载后,收到了一些读者的e-mail。有的读者提出了一些问题,笔者将在本文的最后一次连载中选取其中的典型问题进行解答。由于时间的关系,对于读者朋友的来信,笔者暂时不能一一回复,还望海涵!由于笔者的水平有限,文中难免有错误和纰漏,也热诚欢迎读者朋友不吝指正!<br /> 5. MFC规则DLL<br /><br /> 5.1 概述<br />
2010-12-13 16:12:00 532
转载 lib和dll文件的区别和联系
<br /><br />lib和dll <br />lib和dll文件的区别和联系<br />.dll是在你的程序运行的时候才连接的文件,因此它是一种比较小的可执行文件格式,.dll还有其他的文件格式如.ocx等,所有的.dll文件都是可执行。<br />.lib是在你的程序编译连接的时候就连接的文件,因此你必须告知编译器连接的lib文件在那里。一般来说,与动态连接文件相对比,lib文件也被称为是静态连接库。当你把代码编译成这几种格式的文件时,在以后他们就不可能再被更改。如果你想使用lib文件,就必须:<b
2010-12-13 16:11:00 494
转载 动态链接库的创建
<br /> <br />动态链接库的创建:<br />1. 需要在要导出的函数前加上关键字 _declspec(dllexport) 例如:<br />_declspec(dllexport) int add(int a,int b)<br />{<br /> return a+b;<br />}<br />class _declspec(dllexport) ClassName //将_declspec(dllexport)放在类名前,将导出类的所有成<br />{
2010-12-13 15:53:00 495
转载 DLL导出类避免地狱问题的完美解决方案
<br /> <br />DLL动态链接库是程序复用的重要方式,DLL可以导出函数,使函数被多个程序复用,DLL中的函数实现可以被修改而无需重新编译和连接使用该DLL的应用程序。作为一名面向对象的程序员,希望DLL可以导出类,以便在类的层次上实现复用。所幸的是,DLL确实也可以导出类。<br />然而事实却没这么简单,导出类的DLL在维护和修改时有很多地方必需很小心,增加成员变量、修改导出类的基类等操作都可能导致意想不到的后果,也许用户更新了最新版本的DLL库后,应用程序就再也不能工作了。这就是著名的DLL
2010-12-13 15:33:00 452
转载 一步一步实现MFC扩展DLL中导出类和对话框
<br />一、创建MFC扩展DLL 步骤:运行Visual Studio 6.0->File->New...->Projects;选择Mfc AppWizard(dll),在右边Project name下输入ExportClass,单击“下一步”;选择Mfc Extension DLL (using share MFC DLL) 单击“finish”; 以上完成建立扩展DLL的框架,下面接着建立输出类: Insert-> New Class...在打开的对话框中,"Class
2010-12-13 15:27:00 537
转载 [收集] 经典C/C++面试题(转载) 续
<br /> <br />1) 什么是预编译,何时需要预编译:<br /> 总是使用不经常改动的大型代码体。<br /> 程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。<br />2) char * const p;<br /> char const * p<br /> const char *p<br /> 上述三个有什么区别?<br /> char * const p; //常量指针,p的值不可以修改<br
2010-12-13 15:20:00 496
转载 经典C/C++面试题(转载)
<br /><br />1.介绍一下STL,详细说明STL如何实现vector。<br />Answer:<br /> STL (标准模版库,Standard Template Library)它由容器算法迭代器组成。<br /> STL有以下的一些优点:<br /> 可以方便容易地实现搜索数据或对数据排序等一系列的算法;<br /> 调试程序时更加安全和方便;<br /> 即使是人们用STL在UNIX平台下写的代码你也可以很容易地理解(因为STL是跨平台的)。<br
2010-12-13 15:18:00 956
转载 DLL注入,卸载
<br /> <br />DLL注入实验:<br /> <br /> <br />MSDN已经说明了DllMain可以省略,但这里不能省略。<br />原因很简单,查看DllMain定义的形参就知道是什么回事啦。<br />当应用程序加载DLL时会发送消息到DllMain函数的第二个参数。<br />利用这个特性,加载的DLL就可以立刻响应里面的功能函数啦!!<br />下面是实验的代码:<br /> view plaincopy to clipboardprint?#include <windows.h>
2010-12-13 15:10:00 1266
转载 与LIB和DLL有关
<br /><br />用了些时间学习了下LIB和DLL的一些知识,看了很多人的文章,也自己总结了一些,出于自己的理解...<br />1、LIB与DLL文件的区别<br />2、静态编译和动态链接的23事...<br />3、*.h、*.lib/*.a、*.dll 之间的关系<br />4、为无LIB的DLL制作LIB函数符号输入库 <br />5、调用dll文件 <这里分C版接口和C++版接口,要弄清概念><br />6、DEV-C++编写dll文件的几个知识点<br />1、DLL是一个完整
2010-12-13 15:03:00 1007
转载 DLL封装
<br /><br />DLL,在windows和linux下都用,但是不太相同,因为微软的DLL的内存分配和普通编译成为函数之间的内存格式是不一样的,于是有了__declspec(dllexport)和__declspec(dllimport) ,前者输出DLL中的函数,后者调用的时候使用;相信在windows底下封装过DLL经验的人对于这两个东西还是很熟悉的。偶尔去掉它们,其实也不一定会出问题,但是在多线程的重复调用DLL时,就会有问题的。对于Windows和linux统一版本的DLL的封装就可以用下面
2010-12-13 11:13:00 506
转载 Windows编程中文件操作有以下几种常见方法
<br /><br />1.C语言中文件操作。<br />2.C++语言中的文件操作。<br />3.Win32 API函数文件操作。<br />4.MFC CFile类文件操作。<br />5.MFC CFileDialog类的文件操作。<br />6.注册表文件操作。<br />下面我来详细说明一下各种文件操作方法:<br />1. C语言中文件操作.需要包含的头文件STDIO.H<br /> 写入文件:<br /> FILE *pfile=fopen("C.txt","w");//以写的方式打开C
2010-12-11 15:52:00 738
原创 串口操作
<br /><br />在工业控制中,工控机(一般都基于Windows平台)经常需要与智能仪表通过串口进行通信。串口通信方便易行,应用广泛。<br />一般情况下,工控机和各智能仪表通过RS485总线进行通信。RS485的通信方式是半双工的,只能由作为主节点的工控PC机依次轮询网络上的各智能控制单元子节点。每次通信都是由PC机通过串口向智能控制单元发布命令,智能控制单元在接收到正确的命令后作出应答。<br /> 在Win32下,可以使用两种编程方式实现串口通信,其一是使用ActiveX控件,这种方法程序简
2010-12-11 15:46:00 994
转载 U盘 插入/删除 监测
<br />view plaincopy to clipboardprint?//重载MFC函数 CString path="";//盘符如G:,F: LRESULT CUpanDlg::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam) { // TODO: Add your specialized code here and/or call the base class switch(wParam){ case D
2010-12-11 15:45:00 639
转载 通过WMIC命令远程打开远程计算机的远程桌面(Remote Desktop)功能
<br /><br />虽然标题有点拗口,不过这个命令确实挺有用的。<br /> <br />往往辛辛苦苦装了一台Server,回到家里本想远程桌面爽一下,却忘了打开远程的功能,这时这条命令就有用了。<br /> <br />昨天在一台Server上用了招行的网上银行专业版,然后忘了重新打开远程桌面(该软件为了“保证安全”,居然每运行一次都会强行关闭远程桌面功能……),回到家才意识到问题……。这时该命令也非常有用。<br /> <br />wmic /node:"[full machine name]" /
2010-12-06 15:20:00 1046
原创 批处理学习完全教程
<br /><br />批处理文件,在MS-dos中,.bat文件是可执行文件,有一系列命令构成,其中可以包含对其他程序的调用。<br /> 首先,批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好像我们在DOS提示符下执行的命令行一样),你可以使用dos下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件。<br /> 其次,批处理文件是一种简单的程序,可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程,在批处
2010-12-06 15:19:00 704
转载 用批处理来开启远程控制
你可以用批处理来开启远程控制。那么如何用批处理来开启远程控制呢?本文就来介绍一下如何用批处理来开启远程控制。在系统中打开记事本,将下列代码复制到记事本中,并将此记事本文件保存为.bat文件,然后双击运行此.bat文件即可。@echo offsc config termservice start= autosc start termserviceecho 请输入你要远程这台计算机的用户名set user=" "set /p user=echo 请输入你要远程这台计算机的用户名密码set psd=" "set
2010-12-06 15:15:00 3339
转载 判断电脑待机
<br />/************************************************************************/ <br />/* 说明: <br />调用函数GetLastInputInfo()以后, 结构成员lpi.dwTime 中的值并非上次输入事件 <br />发生以后的毫秒数。而是上次输入事件发生时的系统运行时间。相当于上次输入事件 <br />发生时执行了lpi.dwTime=::GetTickCount()。 <br />::GetTi
2010-12-06 15:13:00 834
教你玩转网络编程模型之完成例程(重叠I/O)配套代码
2011-10-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人