char* som parameter i C# kontra C/C++
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;
}
Er der nogle, der har nogle gode tips til dette - ret så irriterende - problem :-)?
/mikl-dk