📄 文件序列化dll.cpp
字号:
// 文件序列化DLL.cpp : 定义 DLL 的初始化例程。
//
#include "stdafx.h"
#include "文件序列化DLL.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
//
// 注意!
//
// 如果此 DLL 动态链接到 MFC
// DLL,从此 DLL 导出并
// 调入 MFC 的任何函数在函数的最前面
// 都必须添加 AFX_MANAGE_STATE 宏。
//
// 例如:
//
// extern "C" BOOL PASCAL EXPORT ExportedFunction()
// {
// AFX_MANAGE_STATE(AfxGetStaticModuleState());
// // 此处为普通函数体
// }
//
// 此宏先于任何 MFC 调用
// 出现在每个函数中十分重要。这意味着
// 它必须作为函数中的第一个语句
// 出现,甚至先于所有对象变量声明,
// 这是因为它们的构造函数可能生成 MFC
// DLL 调用。
//
// 有关其他详细信息,
// 请参阅 MFC 技术说明 33 和 58。
//
// CDLLApp
BEGIN_MESSAGE_MAP(CDLLApp, CWinApp)
END_MESSAGE_MAP()
// CDLLApp 构造
CDLLApp::CDLLApp()
{
// TODO: 在此处添加构造代码,
// 将所有重要的初始化放置在 InitInstance 中
}
// 唯一的一个 CDLLApp 对象
CDLLApp theApp;
// CDLLApp 初始化
BOOL CDLLApp::InitInstance()
{
CWinApp::InitInstance();
return TRUE;
}
LPSTR __stdcall SetLoadInfo(int CountInfo,LPSTR Name,LPSTR Email,LPSTR AddRess)
{
CDLLApp Doc;
LoadRuleInfo rulescount;
rulescount.CountInfo=CountInfo;
rulescount.Name=Name;
rulescount.Email=Email;
rulescount.Address=AddRess;
CFile file;
CFileException e;
GetProgramPath(PathName);
char tmp[500] = {' '};
tmp[strlen(PathName)+200];
sprintf( tmp, "%s$Temp001$.Dat", PathName);
if( !file.Open( tmp, CFile::modeCreate | CFile::modeWrite, &e ) )
{
return "err";
}
file.Write(&rulescount, sizeof(LoadRuleInfo));
file.Close();
return "ok";
}
//LPTSTR __stdcall GetLoadInfo(int CountInfo,LPTSTR Name,LPTSTR Email,LPTSTR AddRess)
int __stdcall GetLoadInfo()
{
CFile file;
CFileException e;
DWORD nRead;
LoadRuleInfo rulescount;
GetProgramPath(PathName);
char tmp[500] = {' '};
tmp[strlen(PathName)+200];
sprintf(tmp, "%s$Temp001$.Dat", PathName);
if( !file.Open(tmp, CFile::modeRead, &e ) )
{
return 0;
}
nRead = file.Read(&rulescount, sizeof(LoadRuleInfo));
//CountInfo=rulescount.CountInfo;
//Name=rulescount.Name;
//Email=rulescount.Email;
//AddRess=rulescount.Address;
return rulescount.CountInfo;
}
void GetProgramPath(CString& PathName)
{
char szFileName[MAX_PATH];
GetModuleFileName(NULL, szFileName, sizeof(szFileName));
char *p=szFileName;
while(strchr(p,'\\'))
{ p = strchr(p,'\\');
p++;
}
*p = '\0'; //路径在szBuf。
PathName=(CString)szFileName;
return;
}
void __stdcall SetData(LPTSTR s)
{
strcpy(MySharedData, s);
}
LPTSTR __stdcall GetData()
{
//char s[200];
// strcpy(s, MySharedData);
return (LPTSTR)MySharedData;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -