There are a few problems with your patch.
+# ifdef _WIN32_WCE
+ static HANDLE loadLibraryUtf8(const char *z){
+ WCHAR zWide[MAX_PATH];
+ MultiByteToWideChar(CP_ACP,0,z,-1,zWide,MAX_PATH);
+ return LoadLibrary(zWide);
+ }
+# define SQLITE_OPEN_LIBRARY(A) loadLibraryUtf8(A)
+# define SQLITE_FIND_SYMBOL(A,B) GetProcAddressA(A,B)
+# else
+# define SQLITE_OPEN_LIBRARY(A) LoadLibrary(A)
+# define SQLITE_FIND_SYMBOL(A,B) GetProcAddress(A,B)
+# endif
The problem in question is not a Windows CE only one. It occurs with any
client that builds in Unicode mode. Therefore you need to test for the
_UNICODE define instead of _WINCE. Windows CE compilers will also set
_UNICODE (I believe - Robert?).
CP_ACP is not UTF-8. Use either CP_UTF8 or your own UTF-8 conversion
functions from the OS library. Note also that MultiByteToWideChar may
fail or return ERROR_NO_UNICODE_TRANSLATION (1113L) for UTF-8 conversions.
There is no GetProcAddressA. You need to use GetProcAddress.
The patch will need to be something like the following. Which I have
tested and builds with no errors or warnings in _UNICODE mode. Still
need someone to test it in WINCE to be sure.
# include <windows.h>
# define SQLITE_LIBRARY_TYPE HANDLE
-# define SQLITE_OPEN_LIBRARY(A) LoadLibrary(A)
+# ifdef _UNICODE
+static HANDLE loadLibraryUtf8(const char *z){
+ WCHAR zWide[MAX_PATH];
+ DWORD dwLen = MultiByteToWideChar(CP_UTF8,0,z,-1,zWide,MAX_PATH);
+ if (dwLen == 0 || dwLen > MAX_PATH) return NULL;
+ return LoadLibraryW(zWide);
+}
+# define SQLITE_OPEN_LIBRARY(A) loadLibraryUtf8(A)
+# else
+# define SQLITE_OPEN_LIBRARY(A) LoadLibrary(A)
+# endif
# define SQLITE_FIND_SYMBOL(A,B) GetProcAddress(A,B)
# define SQLITE_CLOSE_LIBRARY(A) FreeLibrary(A)
Regards,
Brodie
[EMAIL PROTECTED] wrote:
> Can somebody with access to wince please test patch [3537]
> for me and let me know if it works to fix ticket #2023.
>
> http://www.sqlite.org/cvstrac/chngview?cn=3537
> http://www.sqlite.org/cvstrac/tktview?tn=2023
>
> --
> D. Richard Hipp <[EMAIL PROTECTED]>
>
>
> -----------------------------------------------------------------------------
> To unsubscribe, send email to [EMAIL PROTECTED]
> -----------------------------------------------------------------------------
>
>
-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------