C++ DLL Problem

  • Krass autoit findet jetz die func nicht also poste ich mal den moentanen status.

    autoitcode:

    [autoit]

    $return = DllCall ( "Project1.dll", "str", "DLLversion")
    If @error Then
    MsgBox(0,"","Fehlercode : "&@error)
    Else
    MsgBox(0,"",$return[0])
    EndIf

    [/autoit]

    DLL Code:

    DEF Datei

    Code
    LIBRARY ServerManager
    
    
    CODE PRELOAD MOVEABLE DISCARDABLE
    DATA PRELOAD MOVEABLE
    
    
    EXPORTS
    DLLversion @1
  • ne die dll heißt schon Servermanager

    EDIT:

    Code
    [Linker Warnung] Attempt to export non-public symbol 'DLLversion'

    Kommt als warnung

  • Code
    extern "C" __declspec(dllexport) const char* DLLversion(void)
    {
         return sDLLversion.c_str();
    }


    und ohne .def-Datei.

    Wenn das nicht geht, ist vielleicht als Standart __stdcall eingetragen. Dann brobier mal

    Code
    extern "C" __declspec(dllexport) const char* __cdecl DLLversion(void)
    {
         return sDLLversion.c_str();
    }
  • Marthog: __stadcall + DEF-Datei ist meiner Meinung nach die beste Lösung. cdecl geh zwar auch, aber stdcall ist sauberer finde ich.