-
November 16th, 2009, 01:01 AM
#1
ISAPI unicode filenames
Hi good people! I have a unicode problem; I have created a ISAPI DLL in C++ that takes in a filename and then sends a file to the requesting client. (The DLL is executed from a browser.)
Problem is that when I send in a Japanese filename (where each character need two bytes) the application believes the file doesn't exist.
I'm trying to get a file named "日本語.jpg".
This is turned into ANSI characters in the application: "日本語.jpg".
Then when I try to open the file:
Code:
HANDLE fileHandle = CreateFile(
filePath, //the file path, char *filePath
GENERIC_READ,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL
);
...it doesn't find the file since it checks for the ANSI version of the Unicode file name. If I rename the file to "日本語.jpg" and then try to get "日本語.jpg" I can get the file (but that means I have to rename the files to weird symbols).
The question is:
Can I make it so that the CreateFile function understands that "filePath" is Unicode and not ANSI? Or is there some other way to get a HANDLE to the correct file?
Desperate for help, I just discovered this and if there is no way of fixing it it will mean I have wasted weeks coding for a broken system!
-
November 16th, 2009, 04:24 AM
#2
Re: ISAPI unicode filenames
CreateFile is just a macro for CreateFileA and CreateFileW.
Use CreateFileW for Unicode filenames, or just compile your entire project as Unicode.
Tags for this Thread
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|