Archived

This topic is now archived and is closed to further replies.

MFC -> Non MFC File Handling

This topic is 5178 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello, I''m working on a Level editor now for my game, however having some trouble. The main project uses normal C++ and DirectX, whereas the level editor was built in MFC. The issue I am having is I want to save the levels (in MFC level editor) in a format that I can extract and levels in the normal C++ application. Before it wasn''t an issue because my first level editor was based in core C++ and I was using iostream. But I really like the MFC built-in Save/Open windows and would like to ''avoid'' creating those dialog''s myself just so I can use iostream on the file string instead of ar. When I save a Serialization in MFC it won''t yank out properly in iostream (within the game, and I wouldn''t expect it to work). So when I get down to it here is the question for anyone who has had this problem. Can I : 1) Just get the file string returned from the MFC Open/Save built-in Dialog boxes or 2) Override the virutal ::Serialize(CArchive& ar) and replace it with an iostream port or 3) plug-in just the ::Serialize(CArchive& ar) portion of MFC into a non-MFC project. or 4) Am I overlooking a very simple work-around and I''m going straight the wrong way? For example purposes I''ll use a 2D map class I wish to save-retrieve, this isn''t even close to what I''m using but it can help with examples struct MAP_TILE { short int MapFileX; short int MapFileY; short int Show; }; struct MAP_FILE { short int PlayerStartX; short int PlayerStartY; MAP_TILE BackTile[128][128]; }; class CMapFile { CMapFile(); ~CMapFile(); public: MAP_FILE m_Map; }; Since I have a lot of my map file broken into small structures that plug into structures and into classes, best if I demostrate it that way.. any help?

Share this post


Link to post
Share on other sites
I've not used MFC much, but if I understand correctly, your problem is just that you want the file open / save dialogs without having to create them yourself?? If that's the case, try taking a look at the "CreateFile()" function and the related File IO functions included in the platform SDK.

Edit: Sorry, I'm talking rubbish. The actual functions you're interested in are "GetOpenFileName()" and "GetSaveFileName()". Stay off the drugs, Hinchy-boy!

[edited by - hinch on October 14, 2003 12:10:13 PM]

Share this post


Link to post
Share on other sites
Just override OnSaveDocument. There you have the path the user wants to save, and don''t call the base class, so it won''t call serialize. The same for OnLoadDocument. Voila! just put your code serialization there.

Good Luck!
Daniel.

Share this post


Link to post
Share on other sites
Hahahaha, man I knew it was something as easy as that but I just wasn''t seeing it. Thanks a ton I''ll give it a shot now, I tried looking for what functions to override in MSDN but you know how finding information there can be..

Share this post


Link to post
Share on other sites