DLL Pointer Übergabe

  • C/C++

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • DLL Pointer Übergabe

    Ich habe in Visual C++ eine Wrapper-DLL für die Audiogenie.dll geschriben. Jetzt bin ich drauf gekommen, dass
    da ein Fehler in der Umwandlung vor liegt. Die Audiogenie.dll gibt für Text ein BSTR zurück.
    Diesen konvertiere ich mit Hilfe der ATL-Header (atlconv.h) in einen char *. Wenn ich diesen jetzt
    von der DLL aus mit einer MessageBox ausgebe, funktioniert alles. Übergebe ich aber diesen Pointer dem GameMaker (mit return),
    kommen nur noch drei komische Zeichen an. Was mache ich da falsch?
  • Wie erstellst du denn dein char* array? Auf dem Stack? Also so:

    GML-Quellcode

    1. char out[MAXLEN];


    Wenn du das so machst, ist es klar, dass nach dem returnen der Pointer nicht mehr gültig ist. Hatte mal dasselbe Problem mit einer Delphi-DLL. Das ist jetzt eigentlich das einzige, was mir zu dem Problem eingefallen ist.

    Edit: Meine natürlich ein char-Array und kein char*-Array

    © 2008 by Teamgrill Productions

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Soul Reaver ()

  • Benutzer online 1

    1 Besucher