DLL auslesen

  • So, ich habe jetzt eine DLL erstellt bekommen.
    Nur mal so, drei Text-Dateien rein getan.
    Nur wie komme ich jetzt an die Dateien in der DLL ran?
    D A S _ S P I E L . T X T
    F O R T P F L A N Z U N G _ L O L . T X T
    F R A G E S T U N D E . T X T

    Anlage: die DLL

    Bevor eine wilde Diskusion auf kommt. ich möchte einfach mal schauen, wie ich was in eine DLL bekomme
    und wie ich das wieder auslesen kann. Das man in DLL's keine langen Texte und so packt, das ist mir klar.
    Es geht um das verstehen !!!

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • So, neue DLL erstellt und als Anlage beigefügt. Bei der anderen war ja nichts drinne.

    Also in diese DLL ist das drinne. Auszug:
    D A T E N _ 1D A T E N _ 2 AAA456789012123456789012123456789AAA123AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA321

    Zuvor hatte die Daten_1.txt "AAA456789012123456789012123456789AAA" und die
    Daten_2.txt "123AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA321".

    Daten in deer Anlage könnten evtl. helfen mich zu verstehen. ;)

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Keiner eine Hilfestellung? :( *schiefie*

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • In deinem Fall geht das so:

    Spoiler anzeigen
    [autoit]

    #include <WinAPI.au3>
    #include <WinAPIRes.au3>
    #include <APIResConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $hModul = _WinAPI_LoadLibraryEx("Resourcen_neu.dll", $LOAD_LIBRARY_AS_DATAFILE)

    [/autoit] [autoit][/autoit] [autoit]

    Global $hRes1 = _WinAPI_FindResource($hModul, $RT_RCDATA, "DATEN_1")
    Global $iSizeRes1 = _WinAPI_SizeOfResource($hModul, $hRes1)
    Global $hData1 = _WinAPI_LoadResource($hModul, $hRes1)
    Global $pData1 = _WinAPI_LockResource($hData1)
    Global $tData1 = DllStructCreate("char[" & $iSizeRes1 & "]", $pData1)
    ConsoleWrite(DllStructGetData($tData1, 1) & @CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    Global $hRes2 = _WinAPI_FindResource($hModul, $RT_RCDATA, "DATEN_2")
    Global $iSizeRes2 = _WinAPI_SizeOfResource($hModul, $hRes2)
    Global $hData2 = _WinAPI_LoadResource($hModul, $hRes2)
    Global $pData2 = _WinAPI_LockResource($hData2)
    Global $tData2 = DllStructCreate("char[" & $iSizeRes2 & "]", $pData2)
    ConsoleWrite(DllStructGetData($tData2, 1) & @CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    _WinAPI_FreeLibrary($hModul)

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • Danke, danke, danke !!!!
    Jetzt nutze ich den Nachmittag, um es zu versuchen zu verstehen.


    Edit-1:
    Habe jetzt folgendes dank Funkey hinbekommen

    Spoiler anzeigen
    [autoit]


    #include <WinAPI.au3>
    #include <WinAPIRes.au3>
    #include <APIResConstants.au3>
    Global $hModul = _WinAPI_LoadLibraryEx("daten.dll", $LOAD_LIBRARY_AS_DATAFILE)

    [/autoit] [autoit][/autoit] [autoit]

    Global $hRes1 = _WinAPI_FindResource($hModul, $RT_RCDATA, "EINS")
    Global $iSizeRes1 = _WinAPI_SizeOfResource($hModul, $hRes1)
    Global $hData1 = _WinAPI_LoadResource($hModul, $hRes1)
    Global $pData1 = _WinAPI_LockResource($hData1)
    Global $tData1 = DllStructCreate("char[" & $iSizeRes1 & "]", $pData1)
    ConsoleWrite(DllStructGetData($tData1, 1) & @CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    Global $hRes2 = _WinAPI_FindResource($hModul, $RT_RCDATA, "ZWEI")
    Global $iSizeRes2 = _WinAPI_SizeOfResource($hModul, $hRes2)
    Global $hData2 = _WinAPI_LoadResource($hModul, $hRes2)
    Global $pData2 = _WinAPI_LockResource($hData2)
    Global $tData2 = DllStructCreate("char[" & $iSizeRes2 & "]", $pData2)
    ConsoleWrite(DllStructGetData($tData2, 1) & @CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    Global $hRes3 = _WinAPI_FindResource($hModul, $RT_RCDATA, "DREI")
    Global $iSizeRes3 = _WinAPI_SizeOfResource($hModul, $hRes3)
    Global $hData3 = _WinAPI_LoadResource($hModul, $hRes3)
    Global $pData3 = _WinAPI_LockResource($hData3)
    Global $tData3 = DllStructCreate("char[" & $iSizeRes3 & "]", $pData3)
    ConsoleWrite(DllStructGetData($tData3, 1) & @CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    $zusammen = DllStructGetData($tData1, 1) + DllStructGetData($tData2, 1) + DllStructGetData($tData3, 1)

    [/autoit] [autoit][/autoit] [autoit]

    MsgBox(0,"",DllStructGetData($tData1, 1) & " + " & DllStructGetData($tData2, 1) & " + " &DllStructGetData($tData3, 1) & " = " &$zusammen)
    _WinAPI_FreeLibrary($hModul)

    [/autoit]

    DLL füge ich bei, falls es mal jemand benötig. Es sind nur Beispieldaten!

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    Einmal editiert, zuletzt von Alina (23. November 2014 um 16:31)