What is, or should I ask, is there, an equivalent to DllMain when creating a DLL using C++/CLI?
Are there any restrictions on what cannot be called from this initialization code?
Dan: With respect to the loader lock, C++/CLI's delay load of the CLR and proper initialization for a mixed mode binary, I just posted yesterday on the subject here.
More or less, if you have a mixed mode binary, you must not cause any managed code to run while you are in DllMain()
.
Since .NET 2.0 you have a "module initializer". See here for more information on how that solves the loader lock problem and also here
For a direct answer to your question, this page quotes the standard which says: "There are no limitations on what code is permitted in a module initializer. Module initializers are permitted to run and call both managed and unmanaged code."
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With