Closed Sertzu closed 2 months ago
Thanks for your feedback. 32-bit architectures are not officially supported. The exception is most likely caused by different calling conventions. If your x86 application uses a different calling convention than the library, a runtime check may fail. See https://stackoverflow.com/questions/6334283/declspec-and-stdcall-vs-declspec-only for details. Make sure that you build the sick_scan_xd library and your application with identical calling conventions. In Visual Studio it can be set by Project Properties -> Configuration Properties -> C/C++ -> Advanced -> Calling Convention.
Thank you for the answer, however I tested the library directly with the provided test project inside the same solution and made sure that the calling convention is the same. (Which it is by default)
It seems that I will have to push for the project to be upgraded to an x64 architecture.
Also could you maybe place a disclaimer somewhere in the documentation that x86 is not supported so that other folks know in advance?
@Sertzu Thanks for following up. We will add a note about not supporting 32 bit systems in the next release.
Hello,
Due to limitiations elsewhere in our project we are forced to into Win32 (x86).
I am building the .dll without ros support in Visual Studio with a slightly modified command from the Instruction:
Note that the standard x64 version works without problems and the compilation of the shared library also works. Problems also do not arise when loading the library, however once a library function is called the following exception occurs:
Furthermore if I choose to ignore this exception and continue anyways the program appears to continue execution in a normal way, however this is not acceptable in our use case since undetectable problems could occur down the line.
Could it be that the library just does not work as an x86 library or am I missing something?
Kind regards Markus
Edit: I am on the feature/picoscan_single_echo branch, however I do not think that this is relevant.