⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 文件序列化dll.cpp

📁 一个可以让VB也支持序列化文件的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 + -