我的一个VC/MFC程序需要几个小.dat文件,存储的是一些波型数据. 我现在想将这几个文件编译到EXE中,使得只要一个EXE文件就可以执行而不需要提供.dat文件,怎么做到?
将这几个文件作为资源添加到工程为何不行啊,读出来的数据不对啊
将这几个文件作为资源添加到工程为何不行啊,读出来的数据不对啊
解决方案 »
- BCG类库里面关于鼠标改变CBCGPDockingControlBar控件大小?急啊!!!
- 窗口为什么无法拆分?
- 紧急求助:一个小小的问题,在线等………………………………………………
- 高手指点:进一步学习ole db/ado需要什么样的基础?
- 怎样创建一个只能进程内读写的文件?不是FILESHARE设为0就能解决的。详细请进。
- 那么小的问题。。。气死人`!我错在哪里。。。。
- 我现在在写个程序!是关于证券方面的!可是如下的一个小问题如何解决??
- 如何系统的学习MFC?介绍一下具体的资料和流程。
- 怎样将位图图标插到树上,列表视图上啊? 高分谢答!!
- 求救!如何在空的WORDSPACE中加入文件
- 关于ADO数据库几个简单问题?
- 模拟2000个客户端, 后900个select()返回0
类似代码:HRSRC hRes = FindResource(NULL,MAKEINTRESOURCE(IDR_DLL1),_T("dll"));
DWORD dwSize = SizeofResource(NULL , hRes); //获得指定资源的大小
HGLOBAL MemoryHandle = LoadResource(NULL, hRes);//将资源载入内存
char sysdir[100],DllFile[120];
GetSystemDirectory(sysdir,sizeof(sysdir));
strcpy(DllFile,sysdir);
strcat(DllFile,"\\MyDll.dll");
if(MemoryHandle!= NULL)
{
BYTE *MemPtr = (BYTE *)LockResource(MemoryHandle); //定位资源位置
CFile file(DllFile,CFile::modeCreate | CFile::modeWrite);
file.Write(MemoryHandle,dwSize);
file.Close();
//创建一个临时文件,写入资源数据
}
然后读取自己行不行
猜的
因为看到那些.exe的flssh实际上就是将播放器和flash文件连在一起
在使用DAT资源前首先要将其动态从应用程序中释放到文件中才可对资源做进一步的使用。可先通过宏MAKEINTRESOURCE()将资源标识号IDR_DAT转换成字符串Name,再分别通过FindResource()、LoadResource()函数查找、装载该资源到内存:CString Type="dat";HRSRC res=FindResource (NULL,Name,Type);HGLOBAL gl=LoadResource (NULL,res);
然后给你的导进来的这个资源也起一个名字,如"MyDat", 注意都要加上双引号,默认是不加的
在导入的时候
HRSRC hRes = ::FindResource( NULL, "MyDat", "MyType" );
HGLOBAL gl =::LoadResource( NULL, hRes );
LPVOID lp = ::LockResource( gl ); lp就可以用了如果不加双引号,MyDat就变成了变量,会报错"未定义"
哪位知道DAT文件的文件格式啊,是不是我没从数据起始的地方读啊