Ich fand dieses Tutorial über die Interoperabilität von C#-Code und nicht verwaltetem C++-Code auf Windows Azure sehr hilfreich http://msdn.microsoft.com/en-us/hh351534
Wenn ich sie jedoch ändere, stoße ich auf einige unvorhergesehene Fehler.
Anstelle der Rückgabe und Anzeige einer int
aus nicht verwaltetem Code, möchte ich, dass es eine Zeichenfolge zurückgeben und diese Zeichenfolge in C#-Code anzeigen. In meinem Experiment habe ich also die Funktion AddNumbers()
von
NATIVECALCULATOR_API int AddNumbers(int left, int right){
return left+right;
}
in
NATIVECALCULATOR_API char *AddNumbers(int left, int right){
return "a string";
}
so dass, wenn ich die Schaltfläche auf ASP.NET Seite drücken, wird es "eine Zeichenfolge" zurückgegeben.
In der Datei default.aspx.cs, der Codebehind-Datei der Webseite, heißt es jedoch, dass ich Folgendes nicht ändern kann
static extern int AddNumbers(int left, int right);
in
static extern char *AddNumbers(int left, int right);
weil "Zeiger nur in unsicherem Kontext verwendet werden können".
Und von dort aus habe ich viele Methoden ausprobiert, aber ich bin nicht in der Lage zu konvertieren AddNumbers()
in eine anzuzeigende Zeichenkette.
Also im Grunde, kann mir jemand zeigen, wie man das Tutorial zu ändern, um eine Zeichenfolge anstelle eines int anzuzeigen.