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

Outdated version of addon error.

Mihalcea Bogdan
Contributor
Hi!
I created an AddOn and it works fine on the PC at the office and at my home PC.
The office PC and my Home PC both have installed the Archicad 24 SDK.
When I try to start it on another PC/Laptop on Archicad 24 it give an error in the Addon Manager "Outdated AddOn ... ". On this PC I don't have installed the Archicad 24 SDK.
What could be the reason for this?

I checked with Dependency Walker and it seems fine the versions. [attachment=0]2021-08-04 18_00_50-Dependency Walker - [GISDownloader.apx].jpg[/attachment] I am using the Archicad 24 build 5000 on all PCs.
I have an include library - rapidjson for this AddOn.
10 REPLIES 10
Mihalcea Bogdan
Contributor
The build Output for release version:

c:\program files\graphisoft\api development kit 24.3009\support\modules\gsroot\gsguid.hpp(150): warning C26495: Variable 'GS::Guid::clock_seq_low' is uninitialized. Always initialize a member variable (type.6).
c:\program files\graphisoft\api development kit 24.3009\support\modules\gsroot\gsguid.hpp(159): warning C26495: Variable 'GS::Guid::clock_seq_low' is uninitialized. Always initialize a member variable (type.6).
c:\program files\graphisoft\api development kit 24.3009\support\modules\gsroot\gsguid.hpp(165): warning C26495: Variable 'GS::Guid::clock_seq_low' is uninitialized. Always initialize a member variable (type.6).
c:\program files\graphisoft\api development kit 24.3009\support\modules\gsroot\gsnew.hpp(93): warning C28251: Inconsistent annotation for 'new': this instance has no annotations. See d:\temp\cpp development\gisdownloader\build\predefined c++ types (compiler internal)(33). The first user-provided annotation on this built-in function is at line d:\vs2017 for archicad\vc\tools\msvc\14.16.27023\include\vcruntime_new.h(66). 
c:\program files\graphisoft\api development kit 24.3009\support\modules\gsroot\gsnew.hpp(110): warning C28251: Inconsistent annotation for 'new[]': this instance has no annotations. See d:\temp\cpp development\gisdownloader\build\predefined c++ types (compiler internal)(58). The first user-provided annotation on this built-in function is at line d:\vs2017 for archicad\vc\tools\msvc\14.16.27023\include\vcruntime_new.h(77). 
c:\program files\graphisoft\api development kit 24.3009\support\modules\gsroot\gsnew.hpp(126): warning C28251: Inconsistent annotation for 'new': this instance has no annotations. See d:\vs2017 for archicad\vc\tools\msvc\14.16.27023\include\vcruntime_new.h(71). 
c:\program files\graphisoft\api development kit 24.3009\support\modules\gsroot\gsnew.hpp(142): warning C28251: Inconsistent annotation for 'new[]': this instance has no annotations. See d:\vs2017 for archicad\vc\tools\msvc\14.16.27023\include\vcruntime_new.h(82). 
c:\program files\graphisoft\api development kit 24.3009\support\modules\gsroot\gstime.hpp(232): warning C26495: Variable 'GSTimer::timerData' is uninitialized. Always initialize a member variable (type.6).
c:\program files\graphisoft\api development kit 24.3009\support\modules\gsroot\unistring.hpp(784): warning C26439: This kind of function may not throw. Declare it 'noexcept' (f.6).
c:\program files\graphisoft\api development kit 24.3009\support\modules\inputoutput\name.hpp(135): warning C26439: This kind of function may not throw. Declare it 'noexcept' (f.6).
c:\program files\graphisoft\api development kit 24.3009\support\modules\inputoutput\name.hpp(167): warning C26439: This kind of function may not throw. Declare it 'noexcept' (f.6).
c:\program files\graphisoft\api development kit 24.3009\support\inc\apidefs_automate.h(293): warning C26439: This kind of function may not throw. Declare it 'noexcept' (f.6).
c:\program files\graphisoft\api development kit 24.3009\support\inc\apidefs_elementdifferencegenerator.h(87): warning C26439: This kind of function may not throw. Declare it 'noexcept' (f.6).
c:\program files\graphisoft\api development kit 24.3009\support\inc\apidefs_navigator.h(239): warning C26439: This kind of function may not throw. Declare it 'noexcept' (f.6).
c:\program files\graphisoft\api development kit 24.3009\support\inc\apidefs_navigator.h(266): warning C26439: This kind of function may not throw. Declare it 'noexcept' (f.6).
c:\program files\graphisoft\api development kit 24.3009\support\modules\dglib\dg.h(260): warning C26495: Variable 'DGNumericInputLimitHandlers::polarAngleHandler' is uninitialized. Always initialize a member variable (type.6).
c:\program files\graphisoft\api development kit 24.3009\support\modules\dglib\dg.h(389): warning C26495: Variable 'DGInitData::fileNameAlertResModule' is uninitialized. Always initialize a member variable (type.6).
c:\program files\graphisoft\api development kit 24.3009\support\modules\dglib\dg.h(436): warning C26495: Variable 'DGMousePosData::right' is uninitialized. Always initialize a member variable (type.6).
c:\program files\graphisoft\api development kit 24.3009\support\modules\dglib\dg.h(544): warning C26495: Variable 'DGUCItemData::locResModule' is uninitialized. Always initialize a member variable (type.6).
c:\program files\graphisoft\api development kit 24.3009\support\modules\dglib\dgutility.hpp(1440): warning C26495: Variable 'DG::Utils::SetNextModalParentGuard::lastWindow' is uninitialized. Always initialize a member variable (type.6).
c:\program files\graphisoft\api development kit 24.3009\support\modules\gsroot\optional.hpp(105): warning C26495: Variable 'GS::Optional<API_ElementMemo>::buffer' is uninitialized. Always initialize a member variable (type.6).
c:\program files\graphisoft\api development kit 24.3009\support\modules\gsroot\owner.hpp(46): warning C26439: This kind of function may not throw. Declare it 'noexcept' (f.6).
c:\program files\graphisoft\api development kit 24.3009\support\modules\gsroot\array.hpp(441): warning C26439: This kind of function may not throw. Declare it 'noexcept' (f.6).
c:\program files\graphisoft\api development kit 24.3009\support\modules\gsroot\countedptrimpl.hpp(249): warning C26439: This kind of function may not throw. Declare it 'noexcept' (f.6).
c:\program files\graphisoft\api development kit 24.3009\support\modules\gsroot\pagedarray.hpp(358): warning C26495: Variable 'GS::PagedArray<GS::HashTable<GS::String,GS::ObjectState::Value *>::HashEntry,8>::fixPageTable' is uninitialized. Always initialize a member variable (type.6).
c:\program files\graphisoft\api development kit 24.3009\support\modules\gsroot\pagedarray.hpp(1783): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
d:\temp\cpp development\gisdownloader\build\src\bbox.cpp(9): warning C26495: Variable 'GIS::BBox::minX' is uninitialized. Always initialize a member variable (type.6).
d:\temp\cpp development\gisdownloader\build\src\canvasbbox.cpp(13): warning C26495: Variable 'GIS::CanvasBBox::canvasWidth' is uninitialized. Always initialize a member variable (type.6).
c:\program files\graphisoft\api development kit 24.3009\support\modules\rapidjson\internal\ieee754.h(25): warning C26495: Variable 'rapidjson::internal::Double::<anonymous-tag>::u_' is uninitialized. Always initialize a member variable (type.6).
c:\program files\graphisoft\api development kit 24.3009\support\modules\rapidjson\internal\biginteger.h(243): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
c:\program files\graphisoft\api development kit 24.3009\support\modules\rapidjson\internal\diyfp.h(133): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
c:\program files\graphisoft\api development kit 24.3009\support\modules\rapidjson\internal\diyfp.h(145): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
c:\program files\graphisoft\api development kit 24.3009\support\modules\rapidjson\internal\diyfp.h(229): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
c:\program files\graphisoft\api development kit 24.3009\support\modules\rapidjson\internal\strtod.h(136): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
c:\program files\graphisoft\api development kit 24.3009\support\modules\rapidjson\internal\strtod.h(174): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
c:\program files\graphisoft\api development kit 24.3009\support\modules\rapidjson\internal\strtod.h(178): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
c:\program files\graphisoft\api development kit 24.3009\support\modules\rapidjson\internal\dtoa.h(135): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
c:\program files\graphisoft\api development kit 24.3009\support\modules\rapidjson\internal\dtoa.h(140): warning C26451: Arithmetic overflow: Using operator '*' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '*' to avoid overflow (io.2).
c:\program files\graphisoft\api development kit 24.3009\support\modules\rapidjson\internal\dtoa.h(163): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
c:\program files\graphisoft\api development kit 24.3009\support\modules\rapidjson\internal\dtoa.h(209): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
c:\program files\graphisoft\api development kit 24.3009\support\modules\rapidjson\writer.h(408): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
c:\program files\graphisoft\api development kit 24.3009\support\modules\rapidjson\writer.h(410): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
c:\program files\graphisoft\api development kit 24.3009\support\modules\rapidjson\reader.h(1217): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
c:\program files\graphisoft\api development kit 24.3009\support\modules\rapidjson\reader.h(1228): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
c:\program files\graphisoft\api development kit 24.3009\support\modules\rapidjson\reader.h(1238): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
c:\program files\graphisoft\api development kit 24.3009\support\modules\rapidjson\reader.h(1261): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
c:\program files\graphisoft\api development kit 24.3009\support\modules\rapidjson\reader.h(1278): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
c:\program files\graphisoft\api development kit 24.3009\support\modules\rapidjson\document.h(1976): warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
d:\temp\cpp development\gisdownloader\sources\addon\addonmain.cpp(301): warning C6262: Function uses '27816' bytes of stack:  exceeds /analyze:stacksize '16384'.  Consider moving some data to heap.
c:\program files\graphisoft\api development kit 24.3009\support\modules\gsroot\array.hpp(465): warning C26439: This kind of function may not throw. Declare it 'noexcept' (f.6).
2>Done building project "AddOn.vcxproj".
========== Rebuild All: 2 succeeded, 0 failed, 0 skipped ==========
Mihalcea Bogdan
Contributor
Do I have to buy the developer license in order to use addons on other computers?
Mihalcea Bogdan
Contributor
I really can't figure this out ... I tried the Release Build and still the same error. I have the feeling that I have Visual Studio 2017 installed it makes it work. I don't see any dependency errors in my Release Build Output.
I have read every post about this issue, but those are a bit outdated.
Viktor Kovacs
Graphisoft
Graphisoft
It can be caused by several things, but it's most likely the problem with the rapidjson dependency. Are you sure you deploy rapidjson to other PCs correctly?
Mihalcea Bogdan
Contributor
Viktor wrote:
It can be caused by several things, but it's most likely the problem with the rapidjson dependency. Are you sure you deploy rapidjson to other PCs correctly?
I did not deploy it at all. I have to copy the headers to Archicad.exe location? I've read about AddOns that they try to load external dlls from Archicad.exe's location...
Viktor Kovacs
Graphisoft
Graphisoft
I'm not familiar with rapidjson, but if it comes with a dll, you should copy the dll next to the apx file on every computer.
Mihalcea Bogdan
Contributor
Viktor wrote:
I'm not familiar with rapidjson, but if it comes with a dll, you should copy the dll next to the apx file on every computer.
rapidJSON is a header only library. Should I refractor my code to use the provided JSON parser ?
Mihalcea Bogdan
Contributor
I have absolutely no idea what is happening. Archicad does not give any error messages for this issue. I have http requests in my addon, rapidjson parser, the rest of the includes I think they are fine(BinaryChannel, GXImage Graphics2D etc.). I don't know why does work on my PC(All builds Debug, Release) but on another PC it shows this error THE FILE IS AN OUTDATED ADD-ON THAT CANNOT BE USED WITH THIS ARCHICAD VERSION.
I even compiled it for Archicad 23 and it is working on my PC.
For 2 days I searched topics related to this issue but no success.
Viktor Kovacs
Graphisoft
Graphisoft
Another issue could be the miss of redistributable packages on other computers. Archicad comes with a redistributable package for VS2019. Maybe you are compiling with a later version of VS2019, so the latest redistributables are not installed on other computers (these are installed with Visual Studio on your computer).

Maybe you can try to install the latest VS2019 redistributable package on the other computers, and check if it makes the Add-On work.