My answer is YES. A possible approach is to use addin architecture so it works like this,
- When your C# application runs on x86, it loads the x86 version of the addin.
- When it runs on x64, it loads x64 version.
Then you prepare two projects for the addin versions. One is configured to compile for x86, while the other for x64. In turn, the x86 addin wraps over x86 build of the C++ library, and the x64 over x64 build of the C++ library.
This is slightly complicated because you have to maintain two addin project files, while the source files can be shared.
Using addin architecture, the addin libraries are loaded at runtime, so you have plenty of time to detect if now on x86 or x64, and then decide which addin to load.
Hope this help.