摘要:一直都对EXE捆绑机很感兴趣,想知道那种运行一个EXE文件就相当于运行多个EXE文件的软件是什么原理.之前学习了PE文件知识,再加上一段研究时间,终于写出了一个EXE捆绑机(轩辕EXE捆绑机http://bbs.pediy.com/showthread.php?s=&postid=191958#post191958).其实捆绑机在不懂之前感觉很神秘,弄懂它的原理后就很简单了,下面就开始解说捆绑机的制作原理.想实现运行一个EXE文件同时运行其它多个EXE文件,必须要把多个EXE文件"组合"成一个EXE文件,而这一个EXE文件还必须有"分解"的能力,
阅读全文
随笔分类 - VC++
摘要:一、单文档分割窗口1、用ClassWizard为应用程序添加新的视图类 CLeftView从Cview类派2、在CMainFrame类里声明分割视图的变量public:CSplitterWnd m_splMainCols;CSplitterWnd m_splRightRows;3、在CMainFrame类的OnCreateClient函数中添加代码,创建分割视图BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext){if(!m_splMainCols.CreateStatic(this, ..
阅读全文
摘要:最近想做一个视窗分割的东西,在网上找了一些资料,终于“比葫芦画瓢”地做了一个稍微看得过去的。现将过程记录上来以便以后查看,也让大家分享。主要参考了http://www.czvc.com/view.asp?id=334,这是一个相当不错的网站,本文并非完全照搬,对编译过程中存在的错误进行了改正,也对自己之前看到的其他资料以及上文中存在的问题进行了重点说明,这也是我在初学过程中易犯的错误。界面内共含有一个框架和五个视窗,视窗Left、视窗 Right、视窗Zoom、视窗Control和视窗 Info。视窗Left、 Right和 Zoom的基类都是CView;视窗Control和视窗Info窗都从
阅读全文
摘要:Windows 系统中,安装程序都可以在注册表HKEY_LOCAL_MACHINE\SoftWare\Microsoft\Windows\CurrentVersion\Uninstall获取,并且xp、vista、win7、win8都一样打开注册表命令:regedit,依次展开上述注册表路径,安装程序列表如下图:获取系统安装程序列表:// 获取系统安装程序列表 BOOL CMyListCtrlTestDlg::AllRegKey(HKEY hKey, LPCTSTR szDesKeyItem) { HKEY hSubKey; DWORD dwIndex = 0; ...
阅读全文
摘要:BOOL CDlg::CreateDesktopShotCut(CString strName, CString strSourcePath){ if (FAILED(CoInitialize(NULL))) return FALSE; BOOL bRet = FALSE; TCHAR Path[MAX_PATH+1]; CString strDestDir; LPITEMIDLIST pidl; LPMALLOC pShell; if(SUCCEEDED(SHGetMalloc(&pShell))) { if...
阅读全文
摘要:#include <windows.h>LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow){ static TCHAR szAppName[] = TEXT ("全屏显示") ; HWND hwnd ; MSG msg ; WNDCLASS wndclass ;wndclass.style = CS_HREDRAW
阅读全文
摘要:TcpSrv.cpp#include <Winsock2.h>#include <stdio.h>#pragma comment(lib,"ws2_32.lib")void main(){ //1、初始化套接字库 相当于分配网络资源 WSADATA wsaData; int err = WSAStartup(0x0101, &wsaData); if(err!=0){ return; } if(LOBYTE(wsaData.wVersion)!=1 || HIBYTE(wsaData.wVersion)!=1){ WSACleanup();
阅读全文
摘要:一、动态链接库(DLL)介绍1. Non-MFC DLL:指的是不用MFC的类库结构,直接用C语言写的DLL,其输出的函数一般用的是标准C接口,并能被非MFC或MFC编写的应用程序所调用。2. Regular DLL:和下述的Extension Dlls一样,是用MFC类库编写的。明显的特点是在源文件里有一个继承CWinApp的类。其又可细分成静态连接到MFC和动态连接到MFC上的。但静态连接到MFC的动态连接库只被VC的专业般和企业版所支持。动态链接库和MFC静态链接:这种DLL在链接过程中会将使用到得MFC类库复制一份到最终的DLL文件中最终生成的DLL比较庞大且加载时不是很方便,但它可以
阅读全文
摘要:__declspec(dllexport)声明一个导出函数,是说这个函数要从本DLL导出。我要给别人用。一般用于dll中 省掉在DEF文件中手工定义导出哪些函数的一个方法。当然,如果你的DLL里全是C++的类的话,你无法在DEF里指定导出的函数,只能用__declspec(dllexport)导出类__declspec(dllimport)声明一个导入函数,是说这个函数是从别的DLL导入。我要用。一般用于使用某个dll的exe中 不使用 __declspec(dllimport) 也能正确编译代码,但使用 __declspec(dllimport) 使编译器可以生成更好的代码。编译器之所以能够
阅读全文
摘要:共有两种库:一种是LIB包含了函数所在的DLL文件和文件中函数位置的信息(入口),代码由运行时加载在进程空间中的DLL提供,称为动态链接库dynamic link library。一种是LIB包含函数代码本身,在编译时直接将代码加入程序当中,称为静态链接库static link library。共有两种链接方式:动态链接使用动态链接库,允许可执行模块(.dll文件或.exe文件)仅包含在运行时定位DLL函数的可执行代码所需的信息。静态链接使用静态链接库,链接器从静态链接库LIB获取所有被引用函数,并将库同代码一起放到可执行文件中。关于lib和dll的区别如下:(1)lib是编译时用到的,dll
阅读全文
摘要:Win32编程此资料为ITjob软件开发教程网提供,特此分享,互相学习!C/C++/VC/MFC技术交流群:95453496一、Win32编程基本概念1、消息驱动在介绍Windows消息驱动概念之前,我们首先来回顾面向过程的程序结构:main()程序有明显的开始、中间过程和结束点,程序是围绕这个过程编写好相关的子过程,再把这些子过程串联在一起。程序编好以后,该过程也就确定了,程序必须按照规定好的顺序执行:是否需要用户的输入、输入什么、程序取得用户输入以后做什么处理,处理完毕将结果显示给用户。该过程一旦确定,程序的执行过程也是固定的,用户不能干预。而Windows编程所采用设计思想是:消息驱动,
阅读全文
摘要:#include <windows.h>#include <stdio.h>//包含应用程序中数据类型和数据结构的定义LRESULT CALLBACK WinSunProc( HWND hwnd, // handle to window UINT uMsg, // message identifier WPARAM wParam, // first message parameter LPARAM lParam // second message parameter);/**################################################
阅读全文