Im Anschluss an den Schwänzen von my previous (answered) question ...Gibt es eine einfachere Windows C++ Subversion API oder ein Beispiel .vcproj für minimal_client.c?
SharpSvn macht die Subversion-Client-API einfach anrufen:
SvnClient client = new SvnClient();
client.Authentication.DefaultCredentials = new NetworkCredential(username, password);
client.CheckOut(new Uri("http://xxx.yyy.zzz.aaa/svn/repository"), workingCopyDir);
Auf der anderen Seite, die Client-API von C/C++ Aufruf, wie in minimal_client.c gezeigt erfordert Kodierung "näher an das Metall", sozusagen auf Subversion.
Gibt es Windows-Bibliotheken für C++ in Visual Studio 2003, die eine einfachere Schnittstelle bieten als das, was minimal_client verwendet?
Wenn es nicht, ist ein VS2003 C++ Projekt (eine VCPROJ-Datei), die minimal_client zu laufen demonstriert zu bekommen? Ich bin in der Lage minimal_client.c zu kompilieren und verknüpfen sie die folgenden Bibliotheken:
libsvn_client-1.lib libsvn_delta-1.lib libsvn_diff-1.lib libsvn_fs-1.lib libsvn_fs_base-1.lib libsvn_fs_fs-1.lib libsvn_ra-1.lib libsvn_ra_local-1.lib libsvn_ra_svn-1.lib libsvn_repos-1.lib libsvn_subr-1.lib libsvn_wc-1.lib libapr-1.lib libaprutil-1.lib xml.lib libneon.lib
aber wenn ich meine Anwendung ausführen (im Debugger oder das Release-Build starten, ohne das Debuggen), läuft es für etwa 20 Sekunden, ohne die erste Zeile des Haupt zu Schlagen() und dann führt diese Ausnahme:
Eine nicht behandelte Ausnahme des Typs ‚System.TypeLoadException‘ aufgetreten in Unknown Module.
Zusätzliche Informationen: Kann lädt nicht Typen
apr_pool_t
von der Montage minimal_client, Version = 1.0.3477.16033, Culture = neutral, PublicKeyToken = null.
Ich habe verschiedene Kombination von libsvn_ LIB versucht und svn_ LIB ohne Erfolg.
Irgendwelche Gedanken darüber, was ich falsch mache?
EDIT: Ich begann frisch mit „Win32 Console Project“ (noch in VS2003) und ich bin nun in der Lage, die ersten paar Zeilen meiner App zu debuggen. Aber jetzt, auf dieser Linie:
if (svn_cmdline_init ("minimal_client", stderr) != EXIT_SUCCESS)
Ich erhalte eine verschiedene Ausnahme (im Debugger oder das Release-Build starten, ohne das Debuggen):
Unbehandelte Ausnahme bei 0x7c91b21a in
Win32ConsoleProject_minimal_client.exe
: 0XC0000005 : Zugriffsverletzung beim Schreiben Position 0x00000010.
EDIT: This thread erklärt, dass dieser Fehler eine CRT Diskrepanz zwischen svn und stderr in meiner app.Wenn ich Svn nicht so erstellen will, dass sie übereinstimmen (ich will nicht), kann ich NULL anstelle von stderr übergeben (vorausgesetzt, ich bin bereit, auf Nachrichten zu verzichten, die zu stderr gehen würden) Als ich das tat, mein App lief den ganzen Weg richtig durch.
Ist das ein verwaltetes C++ - Projekt? Hast du es mit einem "normalen" C++ - Projekt versucht? –
@RaphaelSP - Das könnte eines meiner Probleme gewesen sein - siehe meine Bearbeitung. – JeffH
Sind das wirklich 3 Fragen: "Gibt es eine einfachere API?", "Gibt es ein Beispiel für .vcproj?" Und "Warum löst svn_cmdline_init() eine Ausnahme aus?" – JeffH