• Create Account

## Direct X 11 compiling issues

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

6 replies to this topic

### #1Inuyashakagome16  Members

Posted 02 August 2012 - 07:53 AM

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


Is what i get when i compile. Using VS studio 2010 following this http://www.rastertek.../dx11tut03.html 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.

### #2Ripiz  Members

Posted 02 August 2012 - 09:41 AM

You are building 32bit application:
1>------ Build started: Project: DX_Project, Configuration: Debug Win32 ------

However you include 64bit libraries:
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:

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

Edited by Ripiz, 02 August 2012 - 09:41 AM.

### #3Inuyashakagome16  Members

Posted 02 August 2012 - 11:26 AM

Smart man. Thanks!
Now i just have this issue >___>

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 ==========


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


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

unsigned int numModes, i, numerator, denominator, stringLength;


videoCardDescription is declared in the header file

char m_videoCardDescription[128];


DXGI_ADAPTER_DESC adapterDesc;


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.

### #4Ripiz  Members

Posted 02 August 2012 - 01:01 PM

You have unsigned int stringLength; but you need size_t stringLength;

### #5SIC Games  Members

Posted 02 August 2012 - 07:51 PM

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.
Game Engine's WIP Videos - http://www.youtube.com/sicgames88
SIC Games @ GitHub - https://github.com/SICGames?tab=repositories
Simple D2D1 Font Wrapper for D3D11 - https://github.com/SICGames/D2DFontX

### #6Inuyashakagome16  Members

Posted 03 August 2012 - 05:12 AM

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. Thanks guys

### #7SIC Games  Members

Posted 03 August 2012 - 10:01 AM

You're welcome boss! That would make sense because my engine includes 64 bit library and for the 32 bit version includes the 32 bit library.
Game Engine's WIP Videos - http://www.youtube.com/sicgames88
SIC Games @ GitHub - https://github.com/SICGames?tab=repositories
Simple D2D1 Font Wrapper for D3D11 - https://github.com/SICGames/D2DFontX

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.