Wir haben ein Beispiel für natives C++ erstellt, wie man den PCB-Investigator mit einem C++-Wrapper nutzen kann.
Sie können das Projekt hier herunterladen.

Dieses Beispielprojekt enthält eine Reihe kleinerer Beispiele, wie etwa:

  • Daten laden
  • Grafiken erstellen
  • Events handhaben
  • Oversize Creation
  • Daten rotieren oder spiegeln
  • andere Standardabfragen, wie z.B. Selektion, Layerhandling, Berichtmethode für Komponenten, etc.

Dem nachfolgenden Ausschnitt aus dem Header können Sie die enthaltenen Methoden entnehmen:

__declspec(dllexport) void __stdcall GetErrorLog(LPSTR retArray, DWORD size);
__declspec(dllexport) int __stdcall LoadData(char*);
__declspec(dllexport) int __stdcall CreateImage(char*, char*, int);
__declspec(dllexport) int __stdcall CreateImage2(std::string, char *, int, bool, int, double, double, double, double);
__declspec(dllexport) int __stdcal l CreateImage3(std::string, char *, int, bool, int, double, double, double, double, int, int);
__declspec(dllexport) int __stdcall LoadGerberLayerAndReturnLayerName(char*, LPSTR, DWORD);
__declspec(dllexport) bool __stdcall GetLayerBounds(char*, RECTD*);
__declspec(dllexport) bool __stdcall GetStepBounds(RECTD*);
__declspec(dllexport) void __stdcall RotateData(char*, bool);
__declspec(dllexport) void __stdcall RotateAndMirrorStep(double, bool,bool);
__declspec(dllexport) void __stdcall Oversize(char*, double);
__declspec(dllexport) void __stdcall Save();
__declspec(dllexport) void __stdcall CloseJob();
__declspec(dllexport) void __stdcall DisposeAllResources();
__declspec(dllexport) void __stdcall ClearLog();
__declspec(dllexport) void __stdcall ShowPCBIWindow();
__declspec(dllexport) bool __stdcall PCBInvestigatorVisible();
__declspec(dllexport) void __stdcall HighlightCMP(char*);
__declspec(dllexport) void __stdcall ZoomToCMP(char*);
__declspec(dllexport) void __stdcall ClearAllSelections();
__declspec(dllexport) void __stdcall ActivateLayersForSelectedObjects();
__declspec(dllexport) bool __stdcall RegisterEvent(UnmanagedEventClass*);
__declspec(dllexport) void __stdcall GetCMPInfo(char* , LPSTR , DWORD );

Achtung:
Es ist wichtig, dass die Linker Einstellungen richtig gesetzt werden. Diese können in den Projekt Eigenschaften angepasst werden, auch die zusätzlichen Bibliotheksverzeichnisse überprüfen da diese mit fixen Pfaden hinterlegt sind. Entwickler mit native C++ Erfahrung sollten damit leicht zurecht kommen. Bitte auch beachten das die Einstellungen für x64 Plattform gesetzt sind.