Deploying with D3DX
[font=Verdana, Arial, Helvetica, sans-serif][size=2]
I am developing my application using d3dx functions. but when I deploy it to a fresh PC (which has no SDK installation) it doesn't run. And I saw an information in directx SDK that says that :
"The D3DX library included in this release is dependant on the Direct3D runtimes that shipped with this SDK. Applications linking against the version of D3DX in this release must also redistribute the runtime from this SDK."
I don't know how to redistribute the sdk runtime. I am installing redistributable files and it doesn't work. Then I am copying developer runtime dlls to application folder or system32 folder manually but it still doesn't work.
It only works when I install the SDK to the fresh PC. But I can't install the huge SDK to all my clients' computers.
I wonder how you guys are deploying your application which is using d3dx functions.
please help. Thank you.[/font]
I am developing my application using d3dx functions. but when I deploy it to a fresh PC (which has no SDK installation) it doesn't run. And I saw an information in directx SDK that says that :
"The D3DX library included in this release is dependant on the Direct3D runtimes that shipped with this SDK. Applications linking against the version of D3DX in this release must also redistribute the runtime from this SDK."
I don't know how to redistribute the sdk runtime. I am installing redistributable files and it doesn't work. Then I am copying developer runtime dlls to application folder or system32 folder manually but it still doesn't work.
It only works when I install the SDK to the fresh PC. But I can't install the huge SDK to all my clients' computers.
I wonder how you guys are deploying your application which is using d3dx functions.
please help. Thank you.[/font]
Hello
Personnally, I have to run the dx installer and install vcredist at install so that my program runs on other computers
Personnally, I have to run the dx installer and install vcredist at install so that my program runs on other computers
Hello
Personnally, I have to run the dx installer and install vcredist at install so that my program runs on other computers
This, basically. Always use the proper installers, manually copying and pasting DLLs will only end in tears.
Guys, Thank you for your answers but I am still very confused. Because Neither Redist files from SDK nor web installer installs some of required DLLs like D3D10SDKLayers.DLL or D3DX10d_42.dll. They are named as "Developer" runtime and end-user installers doesn't install them. Right....
But !!! As it is written in the SDK documentation... If you are using D3DX10 or 11, I mean if you are linking against lib files which their name has a "d" letter at the end, you have to install developer runtime from the SDK.
When I compile my application, it asks for d3dx10d.lib file because I am including D3DX10.h header file in the code. I don't know why but even if I build as Release version from Visual Studio, linker asks for developer lib files. So, compiled exe needs developer dlls.
I think I need to find a way to compile my application without developer lib files. I tried to remove developer lib files from my lib source folder, It didn't help because linker is asking for those files. Then I defined the compiler directive D3D10_IGNORE_SDK_LAYERS at the beginning of my application but linker is still asking for developer lib files
But !!! As it is written in the SDK documentation... If you are using D3DX10 or 11, I mean if you are linking against lib files which their name has a "d" letter at the end, you have to install developer runtime from the SDK.
When I compile my application, it asks for d3dx10d.lib file because I am including D3DX10.h header file in the code. I don't know why but even if I build as Release version from Visual Studio, linker asks for developer lib files. So, compiled exe needs developer dlls.
I think I need to find a way to compile my application without developer lib files. I tried to remove developer lib files from my lib source folder, It didn't help because linker is asking for those files. Then I defined the compiler directive D3D10_IGNORE_SDK_LAYERS at the beginning of my application but linker is still asking for developer lib files
In my engine, I use the following library statements:
Is there a reason you need to link only to the debug version of the library in a release build? Perhaps you have a debug flag defined somewhere in your code?
// Library imports
#pragma comment( lib, "d3d11.lib" )
#pragma comment( lib, "d3dx11.lib" )
#pragma comment( lib, "d3dx10.lib" )
#pragma comment( lib, "DXGI.lib" )
#pragma comment( lib, "d3d9.lib" )
Is there a reason you need to link only to the debug version of the library in a release build? Perhaps you have a debug flag defined somewhere in your code?
In my engine, I use the following library statements:
// Library imports
#pragma comment( lib, "d3d11.lib" )
#pragma comment( lib, "d3dx11.lib" )
#pragma comment( lib, "d3dx10.lib" )
#pragma comment( lib, "DXGI.lib" )
#pragma comment( lib, "d3d9.lib" )
Is there a reason you need to link only to the debug version of the library in a release build? Perhaps you have a debug flag defined somewhere in your code?
but is'nt that the same as adding those :ib's to the linker option in VS ?
but just on the file level.
[quote name='Jason Z' timestamp='1312617136' post='4845351']
In my engine, I use the following library statements:
// Library imports
#pragma comment( lib, "d3d11.lib" )
#pragma comment( lib, "d3dx11.lib" )
#pragma comment( lib, "d3dx10.lib" )
#pragma comment( lib, "DXGI.lib" )
#pragma comment( lib, "d3d9.lib" )
Is there a reason you need to link only to the debug version of the library in a release build? Perhaps you have a debug flag defined somewhere in your code?
but is'nt that the same as adding those :ib's to the linker option in VS ?
but just on the file level.
[/quote]
I'm pretty sure it is the same thing - my point in showing them is that I don't use the debug versions of the libraries at all.
I took a quick look through D3DX10.h, but didn't see anything requiring the library to include that the OP specified. Do you know more precisely which portion of the header file requires you to include that library?
I think this runtime problem is not only my problem. I mean I don't think I am doing something wrong.
I compiled Tutorial02 from SDK (both debug and release) then copied the bin folders to a fresh windows 7. it didn't work either. Tutorial02 doesn't use and SDK specific media file. So, I think it should work on fresh windows 7 without SDK installed.
a)Debug version is showing a message box saying D3DX10d_42.dll is missing. and it closes the application instantly after that message.
b)Release version doesn't show the message box and it automatically closes the application window.
c)I copied the DLL into debug bin folder manually. Debug version didn't show the error message again but closed instantly like Release version.
I think I need to solve that problem before I fix my own application. Because my project is writing a DX wrapper library for .NET environment like SlimDX or other. And I am implementing SDK tutorials(with C#) in my project to prove that my library can run DK tutorials. But now, I am suspending my project. Because I don't want to deal with .net or other problems.
*** My current problem is to deploy any C++ D3DX application to a fresh windows.
1) How can I run the Tutorial02 on a fresh windows 7 ? Btw, fresh windows has dx end-user web installer installed.
2) Can anyone create a very simple project deployable for me ? I would be happy if you send me the vs2008 project folder and I can build it and I can try it on fresh windows. The Project can be simple as Tutorial02.
thank you.
I compiled Tutorial02 from SDK (both debug and release) then copied the bin folders to a fresh windows 7. it didn't work either. Tutorial02 doesn't use and SDK specific media file. So, I think it should work on fresh windows 7 without SDK installed.
a)Debug version is showing a message box saying D3DX10d_42.dll is missing. and it closes the application instantly after that message.
b)Release version doesn't show the message box and it automatically closes the application window.
c)I copied the DLL into debug bin folder manually. Debug version didn't show the error message again but closed instantly like Release version.
I think I need to solve that problem before I fix my own application. Because my project is writing a DX wrapper library for .NET environment like SlimDX or other. And I am implementing SDK tutorials(with C#) in my project to prove that my library can run DK tutorials. But now, I am suspending my project. Because I don't want to deal with .net or other problems.
*** My current problem is to deploy any C++ D3DX application to a fresh windows.
1) How can I run the Tutorial02 on a fresh windows 7 ? Btw, fresh windows has dx end-user web installer installed.
2) Can anyone create a very simple project deployable for me ? I would be happy if you send me the vs2008 project folder and I can build it and I can try it on fresh windows. The Project can be simple as Tutorial02.
thank you.
Does Tutorial02 need to load some additional files like texture or hlsl shaders? Maybe it simply can't find them?
Try adding "printf/msgbox debugging" - add few printfs or message boxes between statements to see where program terminates/crashes.
Try adding "printf/msgbox debugging" - add few printfs or message boxes between statements to see where program terminates/crashes.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement