External fehler bei fast jeder dll D:

  • GM 8

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

  • External fehler bei fast jeder dll D:

    Hi gmd!


    ______________________________________
    ERROR in
    action number 1
    of Other Event: Game Start
    for object obj_updater:

    Error defining an external function.


    Ich glaube diesen fehler habt ihr schon mal gesehen
    manchmal wenn man dlls verwendet kommt so ein fehler D:

    in diesem fall ist es eine http dll
    wie kann man solche fehler beheben ?
    er kommt manchmal keine ahnung why !?
    Danke!
  • alles ist im richtiegen verzeichniss -.-
    wie gesagt MANCHMAL klappt es nicht

    z.B. nehmt irgendein 39dll code hier mal meiner:

    GML-Quellcode

    1. global._39dll = argument0;
    2. if(is_real(argument0))global._39dll= "39dll.dll";
    3. external_call(external_define(global._39dll, "dllInit", dll_cdecl, ty_real, 0));
    4. //Buffer
    5. global._BufA = external_define(global._39dll, "writebyte", dll_cdecl, ty_real, 2, ty_real,ty_real);
    6. global._BufB = external_define(global._39dll, "writestring", dll_cdecl, ty_real, 2, ty_string, ty_real);
    7. global._BufC = external_define(global._39dll, "writeshort", dll_cdecl, ty_real, 2, ty_real, ty_real);
    8. global._BufD = external_define(global._39dll, "writeint", dll_cdecl, ty_real, 2, ty_real, ty_real);
    9. global._BufE = external_define(global._39dll, "writefloat", dll_cdecl, ty_real, 2, ty_real, ty_real);
    10. global._BufF = external_define(global._39dll, "writedouble", dll_cdecl, ty_real, 2, ty_real, ty_real);
    11. global._BufG = external_define(global._39dll, "readbyte", dll_cdecl, ty_real, 1, ty_real);
    12. global._BufH = external_define(global._39dll, "readstring", dll_cdecl, ty_string, 1, ty_real);
    13. global._BufI = external_define(global._39dll, "readshort", dll_cdecl, ty_real, 1, ty_real);
    14. global._BufJ = external_define(global._39dll, "readint", dll_cdecl, ty_real, 1, ty_real);
    15. global._BufK = external_define(global._39dll, "readfloat", dll_cdecl, ty_real, 1, ty_real);
    16. global._BufL = external_define(global._39dll, "readdouble", dll_cdecl, ty_real, 1, ty_real);
    17. global._BufM = external_define(global._39dll, "clearbuffer", dll_cdecl, ty_real, 1, ty_real);
    18. global._BufN = external_define(global._39dll, "setpos", dll_cdecl, ty_real, 2, ty_real, ty_real);
    19. global._BufO = external_define(global._39dll, "getpos", dll_cdecl, ty_real, 2, ty_real, ty_real);
    20. global._BufQ = external_define(global._39dll, "buffsize", dll_cdecl, ty_real, 1, ty_real);
    21. global._BufR = external_define(global._39dll, "writechars", dll_cdecl, ty_real, 2, ty_string, ty_real);
    22. global._BufS = external_define(global._39dll, "readchars", dll_cdecl, ty_string, 2, ty_real, ty_real);
    23. global._BufU = external_define(global._39dll, "createbuffer", dll_cdecl, ty_real, 0);
    24. global._BufX = external_define(global._39dll, "freebuffer", dll_cdecl, ty_real, 1, ty_real);
    25. global._BufY = external_define(global._39dll, "writeushort", dll_cdecl, ty_real, 2, ty_real, ty_real);
    26. global._BufZ = external_define(global._39dll, "writeuint", dll_cdecl, ty_real, 2, ty_real, ty_real);
    27. global._BufAA = external_define(global._39dll, "readushort", dll_cdecl, ty_real, 1, ty_real);
    28. global._BufAB = external_define(global._39dll, "readuint", dll_cdecl, ty_real, 1, ty_real);
    29. global._BufAC = external_define(global._39dll, "copybuffer", dll_cdecl, ty_real, 2, ty_real, ty_real);
    30. global._BufAD = external_define(global._39dll, "copybuffer2", dll_cdecl, ty_real,4 , ty_real, ty_real, ty_real, ty_real);
    31. global._BufAE = external_define(global._39dll, "bytesleft", dll_cdecl, ty_real, 1, ty_real);
    32. global._BufAF = external_define(global._39dll, "bufferexists", dll_cdecl, ty_real, 1, ty_real);
    33. global._BufAG = external_define(global._39dll, "readsep", dll_cdecl, ty_string, 2, ty_string, ty_real);
    34. if(argument1)
    35. {
    36. //Sockets
    37. global._SokA = external_define(global._39dll, "tcpconnect", dll_cdecl, ty_real, 3, ty_string, ty_real, ty_real);
    38. global._SokB = external_define(global._39dll, "tcplisten", dll_cdecl, ty_real, 3, ty_real, ty_real, ty_real);
    39. global._SokC = external_define(global._39dll, "tcpaccept", dll_cdecl, ty_real, 2, ty_real, ty_real);
    40. global._SokD = external_define(global._39dll, "sendmessage", dll_cdecl, ty_real, 4, ty_real, ty_string, ty_real, ty_real);
    41. global._SokE = external_define(global._39dll, "receivemessage", dll_cdecl, ty_real, 3, ty_real, ty_real, ty_real);
    42. global._SokF = external_define(global._39dll, "setsync", dll_cdecl, ty_real, 2, ty_real, ty_real);
    43. global._SokG = external_define(global._39dll, "setformat", dll_cdecl, ty_real, 3, ty_real, ty_real, ty_string);
    44. global._SokH = external_define(global._39dll, "udpconnect", dll_cdecl, ty_real, 2, ty_real, ty_real);
    45. global._SokI = external_define(global._39dll, "hostip", dll_cdecl, ty_string, 1, ty_string);
    46. global._SokJ = external_define(global._39dll, "lastinIP", dll_cdecl, ty_string, 0);
    47. global._SokK = external_define(global._39dll, "closesock", dll_cdecl, ty_real, 1, ty_real);
    48. global._SokL = external_define(global._39dll, "tcpip", dll_cdecl, ty_string, 1, ty_real);
    49. global._SokM = external_define(global._39dll, "socklasterror", dll_cdecl, ty_real, 0);
    50. global._SokN = external_define(global._39dll, "myhost", dll_cdecl, ty_string, 0);
    51. global._SokO = external_define(global._39dll, "compareip", dll_cdecl, ty_real, 2, ty_string, ty_string);
    52. global._SokP = external_define(global._39dll, "sockexit", dll_cdecl, ty_real, 0);
    53. global._SokQ = external_define(global._39dll, "sockstart", dll_cdecl, ty_real, 0);
    54. global._SokR = external_define(global._39dll, "getmacaddress", dll_cdecl, ty_string, 0);
    55. global._SokS = external_define(global._39dll, "peekmessage", dll_cdecl, ty_real, 3, ty_real, ty_real, ty_real);
    56. global._SokT = external_define(global._39dll, "setnagle", dll_cdecl, ty_real, 2, ty_real, ty_real);
    57. global._SokU = external_define(global._39dll, "tcpconnected", dll_cdecl, ty_real, 1, ty_real);
    58. global._SokX = external_define(global._39dll, "getsocketid", dll_cdecl, ty_real, 1, ty_real);
    59. global._SokY = external_define(global._39dll, "lastinPort", dll_cdecl, ty_real, 0);
    60. }
    61. if(argument2)
    62. {
    63. //File functions
    64. global._FilA = external_define(global._39dll, "fileopen", dll_cdecl, ty_real, 2, ty_string, ty_real);
    65. global._FilB = external_define(global._39dll, "fileclose", dll_cdecl, ty_real, 1, ty_real);
    66. global._FilC = external_define(global._39dll, "filewrite", dll_cdecl, ty_real, 2, ty_real, ty_real);
    67. global._FilD = external_define(global._39dll, "fileread", dll_cdecl, ty_real, 3, ty_real, ty_real, ty_real);
    68. global._FilE = external_define(global._39dll, "filepos", dll_cdecl, ty_real, 1, ty_real);
    69. global._FilF = external_define(global._39dll, "filesetpos", dll_cdecl, ty_real, 2, ty_real, ty_real);
    70. global._FilG = external_define(global._39dll, "filesize", dll_cdecl, ty_real, 1, ty_real);
    71. global._UtilA = external_define(global._39dll, "md5string", dll_cdecl, ty_string, 1, ty_string);
    72. global._UtilB = external_define(global._39dll, "md5buffer", dll_cdecl, ty_string, 1, ty_real);
    73. global._UtilC = external_define(global._39dll, "adler32", dll_cdecl, ty_real, 1, ty_real);
    74. global._UtilD = external_define(global._39dll, "bufferencrypt", dll_cdecl, ty_real, 2, ty_string, ty_real);
    75. global._UtilE = external_define(global._39dll, "iptouint", dll_cdecl, ty_real, 1, ty_string);
    76. global._UtilF = external_define(global._39dll, "uinttoip", dll_cdecl, ty_string, 1, ty_real);
    77. global._UtilG = external_define(global._39dll, "netconnected", dll_cdecl, ty_real, 0);
    78. }
    Alles anzeigen


    und mit dem code klappt manchmal etwas nicht D:
  • alles ist im richtiegen verzeichniss -.-
    wie gesagt MANCHMAL klappt es nicht
    Richtiges Verzeichnis auch angeben und rufst du auch schön external_free bsw. dllfree(); und die anderen DLL Funktionen auf, und welche 39dll Version hast du die neuste ist 2.5.
    wupto.net/ Nicht meine Seite!
    We love Koalas.

    GM-D-Spam-o-Meter: 32%
  • Du machst die DLLs auch schon wieder weg? Also bei der 39dll dllfree und so aufrufen? Den meistens kam bei mir der Fehler wenn die noch da waren->restart. Bei der HTTP kommt das auch öfters bei mir, also hab ich mal neu die HTTP DLL runtergeladen und zack es geht.
    wupto.net/ Nicht meine Seite!
    We love Koalas.

    GM-D-Spam-o-Meter: 32%
  • Ich sehe, dass du den GM8 benutzt, also möchte ich nochmal darauf hinweisen, dass alle Funktionen, um DLLs vom Game Maker aus zu laden, seit GM7 veraltet sind und nur aus Kompatibilitätsgründen beibehalten wurden. In der Hilfe wird seit GM7 davon abgeraten, sie zu benutzen, und stattdessen auf dem Extension Maker verwiesen.

    Dort öffnest du lediglich die DLLs, die du einbinden möchtest, legst für jede Funktion, die du brauchst, einen Eintrag an, in dem zum einen steht, wie die Funktion in der DLL heißt, und zum anderen, wie du sie vom GM aus rufen willst (sowie welchen Typ die Parameter und der Rückgabewert haben), und die daraus entstehende Extension kümmert sich dann darum, die DLL beim fertigen Spiel mitzuliefern, an die richtige Stelle zu entpacken und die Funktionen richtig zu (ent)laden. Probleme, wie du sie gerade hast, sollten dabei dann nicht mehr auftreten.

    Und seit es den Extensionmaker gibt, liefern diejenigen, die DLLs für den GM entwickeln, sowieso primär Extensions aus, und die DLL selbst nur noch für diejenigen, die eine ältere Version des GM benutzen.