( asch | 2019. 09. 28., szo – 14:31 )

A C# -> C hívási konvenció leképzés az egyik ami hibás lehet.

Mi az, hogy nem történik semmi? Exceptiön nincs-> a szimbólumot megtalálja és rá is teszi a vezérlést. Aztán visszatér, de nem történik meg aminek meg kell történni? Hibajelzés semmi?

Amit csinálnék:

* sima C programmal megnézni, hogy működik-e a dll használata?
* Ha működik beledebuggolni a C programba, hogy minek kellene a stacken/regiszterekben lenni, ha jó a paraméterátadás
* Beledebuggolni a .NET+dll-be, hogy mi van a stacken, amikor meghívja a dll függvényt (a dll függvény belépési pontjára kell tenni a breakpointot)
* Ebből kiderül, hogy mi a hibás -> megjvítani, örülni

Persze a doksi olvasgatása sem elvetendő debuggolás előtt/helyett :-). A string->char* konverzió tuti, hogy rendben van? Nem valami más típussá konvertálja a .NET ezeket a paramétereket?

Ha semmi nem működik, akkor külön kipróbálnám a paraméterek .NET->C átadását egyesével saját C-nyelvű DLL-lel típusonként. Aztán ha működik, akkor írnék egy C függvényt, amit .NET-ből hívnék és továbbhívnám az eredeti függvényt belőle. De ezt már szigorúan a leggyakoribb példaprogram beállításokkal. Hátha a hívási konvencióval, vagy valami hasonlóvan van probléma.