这几天没有写blog, 时间花在熟悉vc++6.0上了. 因为一直在unix上用vi开发, 好久不用vc了, 连基本的调试都忘了.
在网上东找西找, 终于找到一篇文章, 解决了我要的功能. 我的调试代码如下:
void CTestDlg::OnOK()
{
// TODO: Add extra validation here
HRSRC hResInfo = NULL;
HGLOBAL hResData = NULL;
DWORD dwSize = 0, dwWritten = 0;
HANDLE hFile = NULL;
// 查找所需的资源
hResInfo = FindResource( NULL, MAKEINTRESOURCE(IDR_TEST1), "Test" );
if ( hResInfo == NULL )
return ;
// 获得资源尺寸
dwSize = SizeofResource( NULL, hResInfo );
// 装载资源
hResData = LoadResource( NULL, hResInfo );
if ( hResData == NULL )
return ;
// 写文件
hFile = CreateFile( "E:\\test.dll", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL );
if ( hFile == NULL )
return ;
WriteFile( hFile, (LPCVOID)LockResource( hResData ), dwSize, &dwWritten, NULL );
CloseHandle( hFile );
CDialog::OnOK();
}
大家可能问这个代码有什么用? 我就是要当你执行一个MFC开发的EXE程序, 它能自动释放出我预先以资源文件打包进去的DLL文件, 至于这个DLL文件是普通的,还是系统后台运行的特殊DLL文件呢, 都可以的.
接下来我会搞定几个技术点:
1. 写注册表功能
2. 拦截API
3. 以后台服务运行的DLL
4. SMTP发送邮件
5. POP3接收邮件
6. 邮件格式: base64, MIME
7. 网络通讯: socket, HTTP协议
8. 查找系统各盘所有目录和文件
别问我想做什么, 只是好玩而已, 有兴趣可以加入我的QQ群(见我的b log主页), 共同探讨这个问题, 到时有新的代码会上传到群共享里.