Howdy!
I ran into this bug when running a game of mine, and it seemed doable for me. The bug is due to msvcp90 missing its file I/O stuff. Here's the link:
http://bugs.winehq.org/show_bug.cgi?id=25966
My intention is to implement these classes as wrappers of ntdll's file I/O API. Is this the right approach, or is there another API that is more preferable?
On 12/16/11 11:18 PM, Aaron Faanes wrote:
The bug is due to msvcp90 missing its file I/O stuff.
There's a lot of classes/functions that io classes depends on. My current goal is to implement cout in msvcp90, in order to do it I need to add support for locales first (there's still around 40 classes to implement before it's done).
You can start implementing functions that don't depend on missing functionality, but I think it's better to implement the functionality it depends on first.
My intention is to implement these classes as wrappers of ntdll's file I/O API. Is this the right approach, or is there another API that is more preferable?
Streams behaviour may be affected by msvcrt related settings. If so you will need to use msvcrt io functions. It should be quite easy to check by e.g. locking stdout in msvcrt and trying to write to it using c++ functions.
On Sat, Dec 17, 2011 at 6:29 AM, Piotr Caban piotr.caban@gmail.com wrote:
On 12/16/11 11:18 PM, Aaron Faanes wrote:
The bug is due to msvcp90 missing its file I/O stuff.
There's a lot of classes/functions that io classes depends on. My current goal is to implement cout in msvcp90, in order to do it I need to add support for locales first (there's still around 40 classes to implement before it's done).
You can start implementing functions that don't depend on missing functionality, but I think it's better to implement the functionality it depends on first.
I agree that the locale stuff should come first. Would implementing the stubs in dlls/msvcp90/locale.c be a good place to start?
My intention is to implement these classes as wrappers of ntdll's file I/O API. Is this the right approach, or is there another API that is more preferable?
Streams behaviour may be affected by msvcrt related settings. If so you will need to use msvcrt io functions. It should be quite easy to check by e.g. locking stdout in msvcrt and trying to write to it using c++ functions.
Yeah, you're probably right. I can check this next week when I get access to my XP install.
On 12/17/11 10:10 PM, Aaron Faanes wrote:
I agree that the locale stuff should come first. Would implementing the stubs in dlls/msvcp90/locale.c be a good place to start?
I'm working on implementing collate and ctype classes. You can pick some other locale facet classes to implement (e.g. codecvt). If you start working on anything please let me know so we don't duplicate the work.
On Sun, Dec 18, 2011 at 4:39 AM, Piotr Caban piotr.caban@gmail.com wrote:
On 12/17/11 10:10 PM, Aaron Faanes wrote:
I agree that the locale stuff should come first. Would implementing the stubs in dlls/msvcp90/locale.c be a good place to start?
I'm working on implementing collate and ctype classes. You can pick some other locale facet classes to implement (e.g. codecvt). If you start working on anything please let me know so we don't duplicate the work.
I started working on implementing codecvt. (after much studying of the MSDN and the wine developer's guide) My plan is to get codecvt's methods implemented as stubs first, then start filling them in with relevant conformance tests.
A couple quick questions:
My plan is to put codecvt stuff in a new dlls/msvcp90/codecvt.c file, with header definitions in msvcp90.h. Is this a good idea, or should it go elsewhere?
Regarding conformance tests, my plan is to also put them in a dlls/msvcp90/tests/codecvt.c. Should they go elsewhere?
If I do put them in a new file, should I put myself as the copyright holder at the top of the file?
Thanks, Piotr, for helping me out on this!
On 12/19/11 07:44, Aaron Faanes wrote:
My plan is to put codecvt stuff in a new dlls/msvcp90/codecvt.c file, with header definitions in msvcp90.h. Is this a good idea, or should it go elsewhere?
I would probably add it to locale.c file.
If I do put them in a new file, should I put myself as the copyright holder at the top of the file?
Yes. If you modify existing file you can add yourself to the copyright as well.