Extension DLL callback function used for a Windows service and write to file
Hello, I have a problem with an extension DLL that has an exported function. The function is being exported ok, it is called by a Windows service. The Windows service is using the exported function, and everything works. I am trying to create a file with:
ofstream file;
file.open("C:\dir\to\file", ios::out);
file << "text";
But nothing happnes however. There are no errors, the file is just not created.
Also, if i try to call MessageBox() in the exported function, nothing happens as well :( . I have a .h file which exports the function with __declspec(dllexport) DWORD WINAPI functionName(), and also a .cpp file with the function definition. There is no main().
I appreciate help and suggestions about what I'm doing wrong.
oldejr.
Re: Extension DLL callback function used for a Windows service and write to file
Does the account the windows service is running under have write permissions to the folder?
Re: Extension DLL callback function used for a Windows service and write to file
Yes i think it's running as system account, but the folder has everyone permissions. And the MessageBox function is not being displayed when I try to call it in the exported function. I need that for debug messages.
Re: Extension DLL callback function used for a Windows service and write to file
You need to use two backslashes in a string when one is required. Try
Code:
file.open("C:\\dir\\to\\file", ios:out);
See http://msdn.microsoft.com/en-us/library/6aw8xdf2.aspx
Re: Extension DLL callback function used for a Windows service and write to file
Quote:
Originally Posted by
oldejr
Yes i think it's running as system account, but the folder has everyone permissions. And the MessageBox function is not being displayed when I try to call it in the exported function. I need that for debug messages.
You need to check for errors and log them (try logging them to the event viewer). Lastly, you aren't going to see any MessageBox popups with a service by default - with services you need to use a different error reporting mechanism other than message boxes.