Hallo,
ich habe ein Objective-C-Programm geschrieben, welches C-Bibliotheken nutzt (odbc-Aufrufe). Die Funktionen nutzen Handles, also aPointer auf allocateten Speicher, sowie Pointer als Referenzen (quasi Pointer auf Pointer). Hier ist ein Beispiel einer Funktion:
Der Code läuft klaglos sowohl als reines C-Commandlinetool als auch als Cocoa-Programm. Wenn ich aber das ganze in ein Swift-Programm einbauen will, läuft der gleiche Code nicht mehr, obwohl die Handles alle ordnungsgemäß initialisiert werden. Das Schlimmste ist, dass bei schrittweiser Ausführung das Programm bei der Funktion SQLDriverConnect einfach hängt, es kommt kein Crash, keine Fehlermeldung, nur der kreisende Cursor. Irgendwas baut Swift am Speicher um, so dass der Code irgendwo abstürzt oder hängt, anders kann ich mir das nicht erklären.
Für Erklärungsversuche oder Ideen wäre ich sehr dankbar.
fiveyears
ich habe ein Objective-C-Programm geschrieben, welches C-Bibliotheken nutzt (odbc-Aufrufe). Die Funktionen nutzen Handles, also aPointer auf allocateten Speicher, sowie Pointer als Referenzen (quasi Pointer auf Pointer). Hier ist ein Beispiel einer Funktion:
C-Quellcode
- BOOL Sql_DriverConnect(HENV* henv, HDBC* hdbc, char** error_msg) {
- SQLCHAR* ddd = "my connstr";
- SQLRETURN retCode = SQLDriverConnect(*hdbc, 0, ddd, SQL_NTS, NULL, 0, NULL, SQL_DRIVER_COMPLETE) ;
- if ( ! retcode(retCode, *henv, *hdbc, NULL, error_msg) ) {
- SQLFreeConnect(*hdbc);
- return FALSE;
- }
- return TRUE;
- }
Für Erklärungsversuche oder Ideen wäre ich sehr dankbar.
fiveyears