Moderator: Moderator Team
Q11 Witch software/apps is do ReactOS needs on to be a completed OS like Windows XP?
E.g ReactOS web browser, email client, msn messenger client, ReactOS software updates, system restore, easy error report software tools to bugzilla.
TheHaiden wrote:1) I know C is more encouraged to use, but is it acceptable to use C++ for programs?
2) Do I need to follow any specific notation or spacing when developing programs for ReactOS? Seeing as I've used Hungarian Notation, to an extent, for over a year, it'll be quite difficult for me to switch.
3) Are there any programs/utilities that are needed, but yet to have been developed? (E.G; updater, browser, IDE, etc..)
Thank you in advanced. And I apologize if these questions has been stated and answered before.
1)We use C++ too , but mainly in explorer.exe. We are developing a explorer-new.exe which needs a lot of love(well, really it needs some COM/OLE code,which it uses, implemented).If you think you can implement COM/OLE backend, tell us . Explorer-new is written in C, but feel free to rewrite or use C++ if needed. Also we have some apps that you may debug and fix.
3)We need to prepare ReactOS for future updates,but it is still tricky.
The best way to help us is fixing our APIs(functions). Here you can find our failed tests: Testman
Winetests tests ReactOS APIS in order to check if they behave as Microsoft ones.An API is just a function that recives params and returns results.So a Winetest is just a call to a function (sending a set of params) and checking that output is correct.If the output is not the expected, it fails.
In MSDN you can find references about how the APIs should work.
Look this one about FindFirstFile API: Document.
And here is our own implementation:Own implementation.
Here some Winetests testing our FindFirstFile API implementation: Eack OK compares the returned value with the expected one.
Windows/Reactos APIS are written in Win32Api (also called WinAPI and Win32) and it is easy to learn, it's C.
So if you are a developer it would be pretty easy for you to find why an API is failing(Is it not checking a NULL param case?maybe the API is not considering an edge case?, Are we forgetting something?, maybe the API calls a function that is returning a wrong result?,etc..)
TheHaiden wrote:Thank you for your time, Vicmarcal, if there is anything else that could help me, whether it be a guideline or a good kick in the right direction, please tell me. I will try my best to help this project as much as I possibly can.
EASY: Which API in the chaincall((FindFirstFile->FindFirstFileEx->OtherAPI->OtherAPI....)is checking if the PATH exists?
bResult = RtlDosPathNameToNtPathName_U (lpFileName,
if (FALSE == bResult)
When is actually our ReactOS FindFirstFile API returning INVALID_HANDLE_VALUE and ERROR_PATH_VALUE?
After watching the chaincall where do you suggest to add the PATH check?
TheHaiden wrote:RtlDosPathNameToNtPathName_U returns a boolean, true if the path does exist, false if it doesn't (hence the conditional statement underneath )
Are you sure RtlDosPathNameToNtPathName_U is REALLY returning a boolean: true if the path does exist, false if it doesn't ?
Look at the RtlDosPathNameToNtPathName code and tell me when RtlDosPathNameToNtPathName_U is REALLY returning FALSE
Other hint, look the name of the function: RtlDosPathNameToNtPathName
The function seems to be something like a" translator which translates a DosPathName to a NT PathName". Why is it supposed to check if a Path exists?ERROR_PATH_VALUE is not a valid system error code? So, it never returns INVALID_HANDLE_VALUE and ERROR_PATH_VALUE? And it can't return both, INVALID_HANDLE_VALUE and ERROR_PATH_VALUE Not too sure about this one.
Nah..this is not the reason .Forget about this for now
--I'm kinda confused on what you mean by this. InternalFindFirstFile already checks if the path submitted is valid, setting the last error code to ERROR_PATH_NOT_FOUND and returning INVALID_FILE_HANDLE, thus giving FindFirstFileEx and FindFirstFile's return value INVALID_FILE_HANDLE - why add another patch check?
if (FALSE == bResult)
if (Status == STATUS_NOT_A_DIRECTORY && RemovedLastChar)
Users browsing this forum: No registered users and 2 guests