GetPrivateProfileString



  • uhm... vor welchen?

    *sorry, ich seh grad nur noch wald... <<*

    EDIT: Ich weiß wo du meintest ^^ Ja da steht was... Mittlerweile hab ich jetzt keine Fehler mehr... muss jez nur mal schauen,, ob er das auch wirklich ausliest...

    EDIT: Danke Danke~ Ich hab es geschafft... Es wird alles so getätigt, wie ich will xD



  • Dieser Thread wurde von Moderator/in evilissimo aus dem Forum C++ in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • wieder ein schönes beispiel für die problematik das die MS IDEs default auf unicode stehen aber jeder pups an quellcode für multibyte ist.

    die ganzen tutorial seiten sollten mal die quelltexte aktualisieren/ergänzen damit neulinge zumindest wissen was der unterschied zwischen multibyte und unicode ist.



  • Dann poste mal ein IDE-gerechtes Snippet mit LoadLibrary () und GetProcAddress () unter Verwendung von UNICODE.


  • Mod

    dummer-kommentar schrieb:

    Dann poste mal ein IDE-gerechtes Snippet mit LoadLibrary () und GetProcAddress () unter Verwendung von UNICODE.

    Wirklich ein dummer Kommentar!

    TCHAR szLib[_MAX_PATH];
    ...
    HINSTANCE hInst = LoadLibrary(CT2A(szLib));
    

    Es ist absolut korrekt, dass auf die eigentliche Zeichensatz Problematik in keinem Tutorial frühzeitig eingegangen wird... Viel zu selten wird die T-Notation erwähnt und zu oft Compiler-Schaltern gedrecht.



  • Martin Richter schrieb:

    TCHAR szLib[_MAX_PATH];
    ...
    HINSTANCE hInst = LoadLibrary(CT2A(szLib));
    

    Das CT2A-Makro ist unter Unicode hier eher kontraproduktiv. 😉


  • Mod

    sri schrieb:

    Das CT2A-Makro ist unter Unicode hier eher kontraproduktiv. 😉

    Jupp! Und jetzt schäme ich mich mal...
    Ich habe mich selbst reingelegt, weil ich GetProcAddress meinte für die es nur LPCSTR Parameter gibt. Aber LoadLibrary geschrieben habe für das es eine A+W Variante gibt...



  • Martin Richter schrieb:

    weil ich GetProcAddress meinte, für die es nur LPCSTR Parameter gibt.

    bzw. nur LPCWSTR Parameter ;). Aber dafuer gibt's dann ja noch die GetProcAddressA :).



  • Superlexx schrieb:

    Martin Richter schrieb:

    weil ich GetProcAddress meinte, für die es nur LPCSTR Parameter gibt.

    bzw. nur LPCWSTR Parameter ;). Aber dafuer gibt's dann ja noch die GetProcAddressA :).

    Es gibt weder GetProcAddressA noch GetProcAddressW, sondern nur GetProcAddress. GetProcAddress nimmt nur LPCSTR entgegen. Man schreibt also sowohl in Ansi als auch in Unicode immer

    FARPROC pfnProc = GetProcAddress(hModule, "WasauchimmerderNamederFunktionist");
    


  • sri schrieb:

    Es gibt weder GetProcAddressA noch GetProcAddressW, sondern nur GetProcAddress. GetProcAddress nimmt nur LPCSTR entgegen.

    Nanana, warum so kategorisch? Zitat Winbase.h:

    #ifdef UNDER_CE
    #define GetProcAddress GetProcAddressW
    
    WINBASEAPI
    FARPROC
    WINAPI
    GetProcAddressW(
        __in HMODULE hModule,
        __in LPCWSTR lpProcName
        );
    
    WINBASEAPI
    FARPROC
    WINAPI
    GetProcAddressA(
        __in HMODULE hModule,
        __in LPCSTR lpProcName
        );
    
    #else
    
    WINBASEAPI
    FARPROC
    WINAPI
    GetProcAddress(
        __in HMODULE hModule,
        __in LPCSTR lpProcName
        );
    
    #endif
    

    und in der MSDN: http://msdn.microsoft.com/en-us/library/ms885634.aspx



  • Narf ..
    Windows CE

    eine GetProcAddressA/W gibt es nur unter CE



  • So what? Ist schließlich auch WinAPI 🙂

    Und das Ganze macht es einem nicht einfacher, nativen Code zu schreiben, der auf beiden aktuellen Windows-Baureihen läuft. Das Problem wurde bei uns übrigens mit

    #pragma push_macro (TEXT)
    

    usw. gelöst.


Anmelden zum Antworten