Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / desktop / MFC

Link order and mixed-mode DLLs

5.00/5 (2 votes)
26 Jan 2012CPOL 19.2K  
When linking a mixture of mixed-mode and unmanaged DLLs to an unmanaged C++ executable, the link order can affect how the program runs.
I recently added a mixed-mode C++/CLI DLL to an existing unmanaged C++ project which also included two unmanaged C++ DLLs, and found that the application file would crash very early on, before it had even reached any user code.

After pulling out what little remains of my hair, I found that the order the DLLs' .lib files are linked to the executable affects whether or not it will crash.

Basically, if you have an unmanaged and a mixed-mode DLL linked to the same executable, the mixed-mode DLL's .lib file must be linked first, or the application will crash.

Just a short tip, but hopefully it'll be useful to someone!

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)