Hallo an Alle,
Ich habe ein Problem mit der C++ API für SWX. Ich benutzte das VS 6 und benötige die Namen aller Kinder in einer Assembly. So weit so gut, es gibt da auch ein Beispiel in der Hilfe zur API und auf der Webseite von SWX. Das Problem ist sie laufen bei mir nicht. Wenn ich mich an die Hilfe Halte und die "sldworks.tlb" einbinde kann ich die Beispiele nicht compilieren. Fehler -> LPCOMPONENT unbekannter Bezeichner. Nutze ich hingegen die CComQIPtr Funktion läuft alles prima aber ich kann das ChildArray, bis auf das erste Kind [0], nicht auslesen. Hat jemand eine Lösung für mich? Muss ich die "sldworks.tlb" anders einbinden. Oder sieht jemand meinen Fehler im Code ?
Gruß Bernhard
//+++++++++Funktion+++++++++++++++++++++++++++
CoInitialize(NULL); //Initialize COM
CComPtr<ISldWorks> swApp; //Use ATL smart pointers
HRESULT hres = swApp.CoCreateInstance(__uuidof(SldWorks), NULL, CLSCTX_LOCAL_SERVER);
CComPtr<IModelDoc2> pModel;
CComQIPtr<IConfiguration> pConf;
CComQIPtr<IComponent2> pComp;
swApp->get_IActiveDoc2(&pModel);
pModel->IGetActiveConfiguration(&pConf);
pConf->IGetRootComponent2(&pComp);
int childCount;
pComp->IGetChildrenCount(&childCount);
CComQIPtr<IComponent2> Children;
pComp->IGetChildren(&Children);
//Leseversuch über Debug
BSTR getName;
for (int k = 0; k < childCount-1; k++ ){
Children[k].get_Name2(&getName);
}
//+++++++++++++++++Funktion+++++++++++++++++++++++
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP