max 8.2 Error 126 loading external 11strokes2

schlam's icon

Hello,
I have an "Error 126 loading external 11strokes2" and [11strokes2] is brown.
This external didn't move since the 8;2 install, it is still in the external folder of max..

any idea ?

thank you !


Ben Bracken's icon

If you are on Windows, it may be that these externals have a dependency that Max no longer ships with. Error 126 usually means that a DLL that an external depends on is missing, often the Microsoft CRT redistributables.

In order to figure out what is actually missing, you can try running Procmon: 
https://docs.microsoft.com/en-us/sysinternals/downloads/procmon

and see what output is generated when Max tries to load the external. This external could be recompiled with a more recent version of the dependency.

11OLSEN's icon

Hi, please download the latest version of 11strokes (11strokes2 is a prev version). I'm sure the Max 8.2 update did not break the external. For me it's working like before.

schlam's icon

Thank you 11OLSEN for your response.
I didn"t manage to make it work again even with "11strokes".
Everything is in the search path.
I rebooted the PC..
Do you have any idea of the culprit ?

still "Error 126 loading external 11strokes" in the console.

I didn't change anything in my computer, I just installed max8.2 and the last live 11.1b4...

thank you !

julien


schlam's icon

@ Ben Bracken
I tried to look at Procmon..
When I hit a button linked to "11strokes" in my patch,
Procmon only sends a long list with "succeed" for each...

EDIT : on 8.1.11 : 11strokes works.

Ben Bracken's icon

Procmon will need to be used when the external is loaded.

You might get the info you need out of running 'dumpbin /dependents <binary>' in a command prompt:
https://docs.microsoft.com/en-us/cpp/build/reference/dependents?view=msvc-160

Another thing you can try is Dependencies:
https://github.com/lucasg/Dependencies

schlam's icon

I am going to try that.
..I am more a musician than an informatician, and my english is bad.
"when the external is loaded" means "when I open max" ?

sorry but I don't understand too what I have to do with : " running 'dumpbin /dependents <binary>' in a command prompt: " *
*
sorry =)

At any rate (<-google trad), this external was not working after 8.2 install, and works again after desinstalling 8.2 and reinstall 8.1.11...
..what is even weird is that after reinstalling 8.2, with still 8.1.11 on the compturer, this external (here, at least) don't work anymore even in 8.1.11...

11OLSEN's icon

here's my Dependencies output if it helps

11OLSEN's icon

..what is even weird is that after reinstalling 8.2, with still 8.1.11 on the compturer, this external (here, at least) don't work anymore even in 8.1.11...

yes weird! Try Dependencies and drop the 11strokes.mxe64 into. Do that with 8.2 installed and without and see if Dependencies shows any difference.


"when the external is loaded" means "when I open max" ?

I think Ben means the moment when you have written the object name into the box and hit enter. That's when the missing dep. gets detected and you might have some output in procmon. But you need to set a filter for procmon e.g. to Max.exe or it's hard to find anything because of the amount of messages.

schlam's icon

If I install only 8.1.11 [11strokes] is working but if I drag the file in Dependencies I have an error with maxAPI.dll

after installing 8.2 : MSVCR11.dll has a problem too and [11strokes] doesn"t work anymore in 8.1.11

After 8.2 install, if I create [11strokes] in a nw patch there is this log in Procmon when filter only includes max.exe

schlam's icon

solved by downloading MSVCR100.dll on the internet.

@11OLSEN. don't you think there is a problem that installing 8.2 delete this dll ?

Joshua Kit Clayton's icon

@schlam I believe that this is simply the windows installer system that when upgrading versions, it removes any additional dependencies that have been installed for previous versions. It doesn't pay attention to any old versions which might be still be present in a manually copied folder. In Max 8.2, we decided to cut ties with some of these very legacy mscvr libraries. Apologies for the inconvenience.

Users such as yourself that want to keep using objects that were relying upon Max's version of these dlls are recommended to install them manually. I would recommend that you use the microsoft installer rather than grabbing just the DLL. More detailed information below:

https://answers.microsoft.com/en-us/windows/forum/all/how-to-fix-msvcr100dll-is-missing/e926a670-dcf7-4070-8057-10e8594079fd?auth=1

schlam's icon

.thank for your response !
Even if 8.2 doesn't use this library anymore, maybe it should not remove old libraries for backward compatibility ? I don't understand too why the installer " doesn't pay attention to any old versions ".
It was a pity to undersdtand how to install 8.1.11 and 8.2 on the same computer.

About your link , I tried that but once 8.2 is installed again, msvcr100dll seems to be deleted again...
I am not an informatician at all...maybe it's my fault.. =)

schlam's icon

@11OLSEN : with what joshua said is it strange that for you [11strokes] continues to work on 8.2 without reinstalling msvcr100dll isn't it ?

11OLSEN's icon

@Joshua Kit Clayton That is maybe ok for now but do you think recompiling the external against the latest sdk would change anything?

11OLSEN's icon

@11OLSEN : with what joshua said is it strange that for you [11strokes] continues to work on 8.2 without reinstalling msvcr100dll isn't it ?

yes, maybe the file is present also at another location on my system, i'm not sure

Joshua Kit Clayton's icon

@11olsen Yes, building with a new SDK, VS2015 or higher (Which instead relies on the universal C runtime) and new cmake generated project files should definitely solve that issue. Let us know if you have any issues.

@schlam Anyone who had that installed as part of another program or developer tools or manually installed would likely not have the experience of it being removed as you had. Those are relatively outdated C runtimes.