Hej,
Jeg sidder og arbejder med at lave en DLL i C#. Jeg har fået lavet et entrypoint i den jvf.
http://www.c-sharpcorner.com/Code/2003/Aug/ExportManagedCodeasUnmanaged.asp, men jeg har problemer med at den ikke bliver kaldt ordentligt. Den eksterne applikation kan dog sagtens finde entrypointet, så det er ikke her, problemet ligger.
I C++ fungerer den fint ved at eksempelvis at eksportere følgende funktion (prototypen er det vigtige):
extern "C" int PASCAL EXPORT USER_ADD (char * input_XML, char ** return_XML, int * return_XML_length)
{
return 0;
}
Jeg kan aflæse input_XML og eksempelvis skrive indeholdet til en fil osv. Altså fungerer den helt ok i C++ - problemet er når jeg gerne vil lave det samme i C#.
Hvis jeg laver følgende funktion i C#, bliver det kastet en uhåndteret undtagelse:
public unsafe int USER_ADD(char* _inputXML, char** _returnXML, int* _returnXMLLength)
{
return 0;
}
Jeg benytter det samme framework på både udviklingsmaskinen og på den maskine, der skal benytte DLL'en. Det er .NET v1.1.4322.
Er der nogle, der har nogle gode tips til dette - ret så irriterende - problem :-)?
/mikl-dk