Ik heb een probleem met het aanroepen van een C# applicatie naar een C DLL.
Het probleem zit hem volgens mij in het feit dat er te weinig informatie in de DLL is over waar de entry points staan.
Een dumpbin /exports geeft mij:
De code ziet er grofweg zo uit:
en de functie call in C# is natuurlijk:
De foutmelding die ik krijg is:
"Unable to find an entry point named 'init_simulation' in DLL '<dll naam>'.
Ik heb gegoogled, maar alle informatie die ik kan vinden over DLLImport of P/Invoke gaat over het aanroepen van Win32 API's.
Terwijl ik mijn aanroepen op een custom DLL doe (waarvan ik beschik over de source).
Ik heb al geprobeerd om een extern definitie in een header file te gooien en die mee te compilen, maar dat hielp ook niks.
Iemand die mij verder kan helpen?
Het probleem zit hem volgens mij in het feit dat er te weinig informatie in de DLL is over waar de entry points staan.
Een dumpbin /exports geeft mij:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| Microsoft (R) COFF/PE Dumper Version 10.00.40219.01 Copyright (C) Microsoft Corporation. All rights reserved. Dump of file Smoke.dll File Type: DLL Summary 2000 .data 3000 .rdata 2000 .reloc 1000 .rsrc 4B000 .text |
De code ziet er grofweg zo uit:
C#:
1
2
| [DllImport("Smoke", EntryPoint = "init_simulation")] //EntryPoint is overbodig hier, weet ik. public static extern void init_simulation(int x); |
C:
1
2
3
| void init_simulation(int n) { //Doe dingen } |
en de functie call in C# is natuurlijk:
C#:
1
| init_simulation(0); |
De foutmelding die ik krijg is:
"Unable to find an entry point named 'init_simulation' in DLL '<dll naam>'.
Ik heb gegoogled, maar alle informatie die ik kan vinden over DLLImport of P/Invoke gaat over het aanroepen van Win32 API's.
Terwijl ik mijn aanroepen op een custom DLL doe (waarvan ik beschik over de source).
Ik heb al geprobeerd om een extern definitie in een header file te gooien en die mee te compilen, maar dat hielp ook niks.
Iemand die mij verder kan helpen?