Could Not Load CtbSdkInterop.dll


#1

I moved my installation to another computer, and now it won’t slice CTB v4 files.

image

I’ve removed and re-installed, but still have the same problem

The file does exist:


#2

Interesting. I reinstalled on the original machine, and same error.

caveat - since uninstalling the working copy, and re-installing the copy that doesn’t work, I have rebuilt the OS. I am on Windows 10 21H2, fully up to date


#3

I reinstalled the OS from the latest installation media downloaded from the Microsoft support site (21H2) on both computers and only updated the graphics driver so that Formware could start - Same issue

I’ve downloaded a fresh copy of the Formware installation media - Same issue

I’ve tried 1.0.4.2 - Same issue

v3 CTB files are OK, but i expected that as the error messages suggest it’s the CTB SDK libraries causing the problems

All I can think of is that the CTB SDK does not play nicely with 21H2 (The machine it was running OK on previously was 20H2). @formware Please could you look into this urgently as I have some prints I need to get done


#4

Hi,

I think it’s the visual C++ redistributable that is missing.
Usually these are some C++ libraries that are usually on every PC because ever piece of software using it requires them. I didn’t get to inserting a programatic check (and error message) for it yet.

I think if you download those it should be fine.

probably you need the x64 link:
https://aka.ms/vs/17/release/vc_redist.x64.exe

kind regards
Elco


#5

Hi Elco

I think you are correct - Inbetween my posts and yours I’ve been doing some troubleshooting and Dependencies (https://github.com/lucasg/Dependencies/releases) shows this:

Which points to the redistributables


#6

Yup, that fixed it.

Thanks Elco.

Strange how they’re missing from a brand new build of the latest windows version. Didn’t cause an issue with Chrome, Sonos S1 Controller or anything else either - just Formware.


#7

Hi frank,

No it’s because of the linking between our C# (.NET) code base and the CTB native C++ library.
Ideally all C/C++ DLLs only expose pure C functions with very basic variables like int/float/double only. Because you can call this from any language without trouble.

Reality is that as soon as a C++ library exposes any more advanced variable types you need to write ‘interoperability’ code in between. That is the CtbSdkInterop.dll that you see. I wrote that in C++ CLI, that is compatible with our C# code on the one end and the native C++ (CtbFormatSDK.dll) on the other end. Its just passing forward variables in the right order so to say.
It’s like a man in the middle translating everything.

But for that special flavour of C++ you need the redistributable…

Usually there is so much software on a PC that there are 10 versions of this redistributable installed.
But that said; i need to add some warning message if it’s missing. That is the descent way to warn the user.
But to be honest there have not been many error reports with this warning so far. (<10)

kind regards
Elco


#8

so the other software you write about probably didn’t use C++/CLI… just native C++


#9

Hi Elco. Understood. Bloody computers…!