0
\$\begingroup\$

I have installed direct SDK and I have visual studio 2010 , I started to write code and compile and when I run I get error of unresolved external symbols or some sort of this , I searched and I found that I need a library called legacy_stdio_definition.lib which I don't have in my files , note my code worked on other computer that have vs 2010

\$\endgroup\$
8
  • \$\begingroup\$ If any one could give me a link for downloading this Library or could upload it to me , I will very thankful because I need to finish that project for the school project \$\endgroup\$ May 21 '17 at 16:14
  • \$\begingroup\$ Are you using the DirectX SDK (June 2010)? Are you using VS 2010 Service Pack 1? what error exactly? The legacy_stdio_definition.lib is only for VS 2015 or later which has the Universal CRT--it doesn't exist for the CRT used by VS 2010, VS 2012, or VS 2013. \$\endgroup\$ May 21 '17 at 19:40
  • \$\begingroup\$ Its link error 2019 unresolved external symbol and some weird symbols , I am using vs 2010 express and I am using June 2010 SDK \$\endgroup\$ May 21 '17 at 23:08
  • \$\begingroup\$ I searched and did every thing but that LNK 2019 error still appearing and test and work in less than two weeks \$\endgroup\$ May 21 '17 at 23:24
  • 2
    \$\begingroup\$ Update your question with the actual link error text including the "weird symbols". \$\endgroup\$ May 22 '17 at 4:36
1
\$\begingroup\$

Based on the comments, you likely have misconfigured your x86 vs. x64 library paths for using the legacy DirectX SDK with VS 2010.

In the Project Settings under VC++ Directories.

For all configurations for the Win32 (x86) platform, you need:

Include: ``$(DXSDK_DIR)Include;$(IncludePath)``
Lib: ``$(DXSDK_DIR)Lib\x86;$(LibraryPath)``
Executable: ``$(DXSDK_DIR)Utilities\bin\x86;$(ExecutablePath)``

For all configurations for the x64 platform, you need:

Include: ``$(DXSDK_DIR)Include;$(IncludePath)``
Lib: ``$(DXSDK_DIR)Lib\x64;$(LibraryPath)``
Executable: ``$(DXSDK_DIR)Utilities\bin\x64;$(DXSDK_DIR)Utilities\bin\x86;$(ExecutablePath)``

Keep in mind that that legacy DirectX SDK is end-of-life. See MSDN and this blog post.

Note that the instructions above only work correctly for VS 2010 which uses the Windows 7.1 SDK. When using any newer version of Visual Studio that comes with the Windows 8.x SDK or Windows 10 SDK, you need to reverse the path order to use the legacy DirectX SDX.

\$\endgroup\$
4
  • \$\begingroup\$ Still the same error \$\endgroup\$ May 22 '17 at 21:50
  • \$\begingroup\$ If I installed vs2015 , that error will never show? \$\endgroup\$ May 22 '17 at 21:57
  • \$\begingroup\$ If you are using the legacy D3DX11 library, you have to use the old DirectX SDK. You can find replacements for all the old DirectX SDK only stuff for Direct3D 11 which would build with VS 2013 or later without the DirectX SDK at all. \$\endgroup\$ May 23 '17 at 0:00
  • \$\begingroup\$ Thanks for help and support .early today I used code blocks IDE and loaded library automatically when I chose the SDK directory \$\endgroup\$ May 23 '17 at 15:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.