Archicad C++ API
About Archicad add-on development using the C++ API.

Handling ZIP archives and XML document files from an Add-On

Anonymous
Not applicable
I know ArchiCAD uses dll-s/frameworks to handle ZIP archives and XML document files all over the place, the xerces-c framework seems to be used on both platforms for XML.

Instead of reinventing a wheel or accidentally using an other toolkit, does anybody now how to piggyback on these third party frameworks?

If not, what is the favorite choice for parsing XML files and Unzipping archives into temporary directories?

Thanks,
f
4 REPLIES 4
Anonymous
Not applicable
There are open source libraries like gzip, minilib,xlib and tinyxml. When integrating them to the API source however the headers seem to conflict and it is hard to overcome. On the other hand the API support using GSXML, GSXUTILS, GSZIP DLLs (frameworks on the MAC), however the header files (and the know how) is not public.
Ralph Wessel
Mentor
Ferenc wrote:
There are open source libraries like gzip, minilib,xlib and tinyxml. When integrating them to the API source however the headers seem to conflict and it is hard to overcome. On the other hand the API support using GSXML, GSXUTILS, GSZIP DLLs (frameworks on the MAC), however the header files (and the know how) is not public.
I've linked to a variety of other SDKs for zipping, SOAP calls, and XML processing without problems. What conflicts are you seeing?
Ralph Wessel BArch
Software Engineer Speckle Systems
Anonymous
Not applicable
Different on the mac and on windows. I haven't documented them too well, but without the extensive details it looks like using STL, Xlib, or Boost headers gets me into trouble, like basic string (BSTR) and others either redefined or assumed differently. Without drilling down into the packages it is really hard to pinpoint what went wrong because the error messages don't come from the place where you actually CAN fix anything. The problem that these packages (like Collada.org DAE, SketchUp SDK) assume that the host is either an AFX, or an ATL COM, or MFC application, which the ArchiCAD APX DLL (Bundle) is not.
I think eventually I'll need to create a wrapper DLL (Framework) and compile that with the SDKs/Libraries, and only expose a subset towards the APX tool so namespaces, defines, etc will be shielded.
What did you use for the ZIP functionality and the XML processing (if it is not trade secret)?
Ralph Wessel
Mentor
Ferenc wrote:
Different on the mac and on windows. I haven't documented them too well, but without the extensive details it looks like using STL, Xlib, or Boost headers gets me into trouble, like basic string (BSTR) and others either redefined or assumed differently.
I make extensive use of the STL and Boost (esp. BGL), but there are parts of the ArchiCAD API that can conflict with these headers. As a quick experiment, does your situation improve if you remove the following folder from the ArchiCAD API devkit: "Support/Modules/GSRoot/STL"?
Ralph Wessel BArch
Software Engineer Speckle Systems

Didn't find the answer?

Check other topics in this Forum

Back to Forum

Read the latest accepted solutions!

Accepted Solutions

Start a new conversation!