Sign in to follow this  

Direct X 11 compiling issues

This topic is 1963 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

[CODE]
1>D3dclass.obj : error LNK2019: unresolved external symbol _D3DXMatrixOrthoLH@20 referenced in function "public: bool __thiscall D3DClass::initialize(int,int,bool,struct HWND__ *,bool,float,float)" (?initialize@D3DClass@@QAE_NHH_NPAUHWND__@@0MM@Z)
1>D3dclass.obj : error LNK2019: unresolved external symbol _D3DXMatrixPerspectiveFovLH@20 referenced in function "public: bool __thiscall D3DClass::initialize(int,int,bool,struct HWND__ *,bool,float,float)" (?initialize@D3DClass@@QAE_NHH_NPAUHWND__@@0MM@Z)
1>D3dclass.obj : error LNK2019: unresolved external symbol _D3D11CreateDeviceAndSwapChain@48 referenced in function "public: bool __thiscall D3DClass::initialize(int,int,bool,struct HWND__ *,bool,float,float)" (?initialize@D3DClass@@QAE_NHH_NPAUHWND__@@0MM@Z)
1>D3dclass.obj : error LNK2019: unresolved external symbol _CreateDXGIFactory@8 referenced in function "public: bool __thiscall D3DClass::initialize(int,int,bool,struct HWND__ *,bool,float,float)" (?initialize@D3DClass@@QAE_NHH_NPAUHWND__@@0MM@Z)
1>C:\Users\dbrewer\Dropbox\Pri_Programming\VS\DX_Project\Debug\DX_Project.exe : fatal error LNK1120: 4 unresolved externals
[/CODE]

Is what i get when i compile. Using VS studio 2010 following this [url="http://www.rastertek.com/dx11tut03.html"]http://www.rastertek.../dx11tut03.html[/url] tutorial. Finish putting all the code in and it just won't compile. I have the include directory included under Project Properties > VC++ Directories along with the library directories for BOTH x86 and x64. I've attached the compiler log, the CPP and the header file for the section of the project that is giving me an issue.
If i'm not mistaken, the issues i'm getting are because something isn't included correctly, or at all. I'm just not sure what needs included.

Share this post


Link to post
Share on other sites
You are building 32bit application:
[i]1>------ Build started: Project: DX_Project, Configuration: Debug Win32 ------[/i]

However you include 64bit libraries:
[i]1> Searching C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x64\dxgi.lib:
1> Searching C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x64\d3d11.lib:
1> Searching C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x64\d3dx11.lib:
1> Searching C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x64\d3dx10.lib:[/i]

Remove 64 bit library paths from 32 bit project settings and it should be fine. Edited by Ripiz

Share this post


Link to post
Share on other sites
Smart man. :P Thanks!
Now i just have this issue >___>

[CODE]
1>------ Build started: Project: DX_Project, Configuration: Debug x64 ------
1> D3dclass.cpp
1>D3dclass.cpp(118): error C2664: 'errno_t wcstombs_s(size_t *,char *,size_t,const wchar_t *,size_t)' : cannot convert parameter 1 from 'unsigned int *' to 'size_t *'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
[/CODE]


and this is the line that is being referenced
[CODE]
error = wcstombs_s(&stringLength, m_videoCardDescription, 128, adapterDesc.Description, 128);
[/CODE]

Looking over the code, i don't see where the issue is coming from. "Can't convert from unsigned to size_t" the unsigned parameter is string length which is

[CODE]
unsigned int numModes, i, numerator, denominator, stringLength;
[/CODE]

videoCardDescription is declared in the header file

[CODE]
char m_videoCardDescription[128];
[/CODE]

and adapterDesc is

[CODE]
DXGI_ADAPTER_DESC adapterDesc;
[/CODE]

I'm just not sure what's wrong. I'm still looking at it so I may end up finding it and just updating this thread.

Share this post


Link to post
Share on other sites
as Ripiz said, SIZE_T returns a unsigned interger. It like sizeof() operatator. So, if you're trying to return a size of a string then you'll need a length. Maybe you've already got it but I just threw it out there to help out a bit.

Share this post


Link to post
Share on other sites
Well, I ended up looking back at Ripiz original post about the library issue and decided I would double check to be sure I got rid of them. And I didn't >__> I was building with a x64 but with both libraries included. I removed the x64 and just started building with Win32 and it worked first time. >_< User error I say. :P Thanks guys

Share this post


Link to post
Share on other sites

This topic is 1963 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this