I have a C library project for UWP. There are some C files which are calling C++ WINRT functions defined in CPP file.It is compiling successfully and generating a library file(LIB). I am compiling in Visual Studio 2015 with update 1 and target platform is 10.0.10240.0
But, I want to generate DLL instead of LIB file. Here's the changes I did to change the project so that it generates DLL instead of LIB.
Try1: So, In the startup project, In Configuration Properties => General I change Configuration from Static Library to Dynamic Library.
And in all the project, I changed from Multi-threaded Debug(/MTd) to Multi-threaded Debug DLL(/MDd).
Try2: Created a new project Windows Universal Project and added the all the files from the project creating LIB to this project. Still, I am getting the below errors.
Now, I am getting the errors
vccorlibd.lib(init.obj) : error LNK2038: mismatch detected for 'vccorlib_lib_should_be_specified_before_msvcrt_lib_to_linker': value '1' doesn't match value '0' in msvcrtd.lib(app_appinit.obj)
vccorlibd.lib(init.obj) : error LNK2005: __crtWinrtInitType already defined in msvcrtd.lib(app_appinit.obj)
msvcrtd.lib(initializers.obj) : warning LNK4098: defaultlib 'msvcrt.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
Any Suggestions how to resolve this.
I had the same Issue and fixed it using the linker flags:
for debug builds you can use:
The standard /nodefaultlib did not work for me.
The following linker flags (for debug) did the trick in my case: