我们可以通过FindResource、LoadResource、LockResource的方式获取到自定义资源的内存数据。
而好多函数需要传递的却是文件路径。我想问的是:如何把LPVOID的原始数据转换成一个内存中的文件?
(说明:通过CreateFile或WriteFile等方式写到磁盘再读取的就不用说了,我知道肯定有直接转换的方式,我想知道的是直接转换)。谢谢!!

解决方案 »

  1.   

    内存中的文件?LockResource后返回的LPVOID就可以直接读了啊
      

  2.   

    LPVIOD的数据转化成文件的话,就和WriteFile一样,只不过是分配一块新内存,写入文件头及偏移量等信息,然后根据LPVOID内容拷贝文件体,就完成了内存文件的操作了。
      

  3.   

    假设有些函数只吃文件路径参数,何解?
    假设有个函数bool PlayMp3( const char *szFilePath ); // szFilePath表示一个文件路径,例如:C:\Music\test.mp3这时我把文件存成自定义资源的形式,虽然可以获取到它的数据,但与参数所需要的数据不符就没法用了。