DirectX SDK April 2005 在旧版本的VC6中可能造成编译问题

PCIe中ACS知识小记 虚拟机内部的访问数据显而易见是带的GPA地址。而目前几乎所有的PCIe 设备都带ACS control,所以它们可以单独assign给不同的VM,但是随之而来的就是即使两个GPU同时assign给同一个VM,由于ACS的存在,他们之间也不会有真正的物理层面的P2P访问。每一个TLP都自带一个address(寻址类TLP),同时每一个endpoint,PCIe switch都自带一段BIOS配置的地址空间范围,一旦这个TLP的address落入某个设备的地址范围,那么这个TLP就属于这个设备并消费。 阅读详情

使用 DirectInput  的  IDirectInputDevice8::SetDataFormat  可能无法正常编译。

dinput8.lib(dilib2.obj) : fatal error LNK1103: debugging information corrupt; recompile module

去掉使用它的那句话就没有问题了。原因在于使用了新版的DIrextX SDK (April 2005 ).

解决方法:
备份 Dxerr9.libdinput8.lib  使用旧版的文件进行替换(比如 October 2004)。

网上找到的资料,原文:

You should have upgraded from VS6 to .Net 2003 by now. I am only doing this excercise because of some legacy apps that I have. Also, VS 2005 is currently at Beta 2 and some of you on the fence may just want to wait until it rolls before moving on from VS6 because it is pointless moving to .Net 2003 now (if you haven't already) with VS 2005 so close to release. So, don't take this post as an endorsement to not upgrade from VS6.

First things first. Don't even think of trying to use the latest June 2005 SDK. It won't work. Trust me on this. Smile


  1. Download the April 2005 DirectX SDK (scroll down the page to the "Older SDK Releases" section
  2. Download the April 2005 MS Platform SDK (scroll down the page and download PSDK-x86.exe)
  3. Go to Keith's site and download the April or June DirectX 9.0c D3DX Only Installer Download
  4. Assuming that you are using the Summer or October 2004 DirectX SDK, go to the
    Lib folder and copy the Dxerr9.lib and Dinput8.lib files to a temp folder.
  5. Uninstall the current DirectX SDK.
  6. Install the MS Platform SDK (assuming you don't already have the latest version installed)
  7. Install the April 2005 DirectX SDK
  8. Install the D3DX runtime files you downloaded from Keith's site
  9. Reboot
  10. Go to the Lib/x86/ folder where you installed the April 2005 SDK and backup the Dxerr9.lib and dinput8.lib files
  11. Copy the Dxerr9.lib and dinput8.lib files from your previous Summer 2004 or October 2004 into the /Lib/x86 folder.

    In the case of the Dxerr9.lib file, the reason for this is that MS compiled that library (don't ask me why they did this with only this file) with buffer overrun/security checking (as they do with all their .Net libs now,
    hence the reason VS6 no longer works with DX) and any library function which makes calls to that library (e.g. to DXGetErrorString9) will cause linker errors
    e.g.
    Code:

    Linking...
    dxerr9.lib(dxerr9.obj) : error LNK2001: unresolved external symbol ___security_cookie
    dxerr9.lib(dxerr9.obj) : error LNK2001: unresolved external symbol @__security_check_cookie@4


    In the case of the dinput8.lib file, you will get this error when compiling a debug app. For some unGodly reason, this file seems to contain corrupt and/or incorrect debugging information. So you will see something like this if you don't use the older version. Incidentally, when comparing these legacy files, in April 2005 SDK, MS decided to include versions that are older than those in the October 2004 Update. Don't ask.

    Code:

    Linking...
    dinput8.lib(dilib2.obj) : fatal error LNK1103: debugging information corrupt; recompile module
    Error executing link.exe.


  12. Start VS6 and go to Tools/Options/Directories. Make sure that the folder order is as indicated below. If any folder is not there, you need to add it. This is the order in which they need to appear.

    Include files:

    DirectX include folder
    MS Platform SDK include folder
    MS VC98 include folder
    MS VC98 MFC include folder
    MS VC98 ATL include folder

    Library files:

    DirectX lib folder
    MS VC98 lib folder
    MS VC98 MFC lib folder


  13. Couple of things to note:


    1. Keith states on his site that the April 2005 SDK works with VS6; which is why I decided to try it for this legacy app which I still had using the October 2004 SDK. I've sent him email letting him know that it doesn't quite work without the tinkering indicated above.
    2. DirectShow is now in the MS Platform SDK. If you had modules which were based off any of its samples, you will have to modify them to work. e.g. this legacy app I was trying to build, was using an AVI player based on the original cutscene.cpp sample program included with DirectShow. Now that file has been moved into the /Microsoft Platform SDK/Samples/Multimedia/DirectShow/Players/Cutscene folder. It has been modified to work with later DX and MS PSDK builds, so your legacy app won't work without revision. e.g. you will get linker errors like lstrcpy_instead_use_StringCbCopy_or_StringCchCopy or wsprintf_instead_use_StringCbPrintf_or_StringCchPrintf etc because the older versions of some DirectShow samples, did stuff like:

      Code:

      wsprintf(szTitle, TEXT("%s: /0"), CUTSCENE_NAME);
       _vsntprintf(szBuffer, NUMCHARS - 1, szFormat, pArgs);


      which have now been changed to:

      Code:

      (void)StringCchPrintf(szTitle, NUMELMS(szTitle), TEXT("%s: /0"), CUTSCENE_NAME);
      (void)StringCchVPrintf(szBuffer, NUMCHARS - 1, szFormat, pArgs);


      You will have to revise your DirectShow sources to match the changes in the new samples in order to get them to work. Thats what I had to do with that one DirectShow sample (cutscene.cpp) that my player was based on.
    3. If you have been compiling a DX8.1 based source app with the DX9 SDK, they will no longer compile without further tinkering. e.g. the d3dx8.h file is gone. And no, replacing all calls to that header file with d3dx9.h won't work without further significant tinkering. You will have to port the app to DirectX9 SDK. Good luck with that if you didn't do it before. If someone knows a way around this and which I may not be aware of, please let me know.
    4. If you have been compiling a DX8.1 based source app with the DX9 SDK, they will no longer compile without further tinkering. e.g. the d3dx8.h file is gone. And no, replacing all calls to that header file with d3dx9.h won't work without further significant tinkering. You will have to port the app to DirectX9 SDK. Good luck with that if you didn't do it before. If someone knows a way around this and which I may not be aware of, please let me know.
  14. Start VS6 and go to Tools/Options/Directories. Make sure that the folder order is as indicated below. If any folder is not there, you need to add it. This is the order in which they need to appear.

    Include files:

    DirectX include folder
    MS Platform SDK include folder
    MS VC98 include folder
    MS VC98 MFC include folder
    MS VC98 ATL include folder

    Library files:

    DirectX lib folder
    MS VC98 lib folder
    MS VC98 MFC lib folder



Couple of things to note:


  1. Keith states on his site that the April 2005 SDK works with VS6; which is why I decided to try it for this legacy app which I still had using the October 2004 SDK. I've sent him email letting him know that it doesn't quite work without the tinkering indicated above.
  2. DirectShow is now in the MS Platform SDK. If you had modules which were based off any of its samples, you will have to modify them to work. e.g. this legacy app I was trying to build, was using an AVI player based on the original cutscene.cpp sample program included with DirectShow. Now that file has been moved into the /Microsoft Platform SDK/Samples/Multimedia/DirectShow/Players/Cutscene folder. It has been modified to work with later DX and MS PSDK builds, so your legacy app won't work without revision. e.g. you will get linker errors like lstrcpy_instead_use_StringCbCopy_or_StringCchCopy or wsprintf_instead_use_StringCbPrintf_or_StringCchPrintf etc because the older versions of some DirectShow samples, did stuff like:

    Code:

    wsprintf(szTitle, TEXT("%s: /0"), CUTSCENE_NAME);
     _vsntprintf(szBuffer, NUMCHARS - 1, szFormat, pArgs);


    which have now been changed to:

    Code:

    (void)StringCchPrintf(szTitle, NUMELMS(szTitle), TEXT("%s: /0"), CUTSCENE_NAME);
    (void)StringCchVPrintf(szBuffer, NUMCHARS - 1, szFormat, pArgs);


    You will have to revise your DirectShow sources to match the changes in the new samples in order to get them to work. Thats what I had to do with that one DirectShow sample (cutscene.cpp) that my player was based on.
  3. If you have been compiling a DX8.1 based source app with the DX9 SDK, they will no longer compile without further tinkering. e.g. the d3dx8.h file is gone. And no, replacing all calls to that header file with d3dx9.h won't work without further significant tinkering. You will have to port the app to DirectX9 SDK. Good luck with that if you didn't do it before. If someone knows a way around this and which I may not be aware of, please let me know.
  4. If you have been compiling a DX8.1 based source app with the DX9 SDK, they will no longer compile without further tinkering. e.g. the d3dx8.h file is gone. And no, replacing all calls to that header file with d3dx9.h won't work without further significant tinkering. You will have to port the app to DirectX9 SDK. Good luck with that if you didn't do it before. If someone knows a way around this and which I may not be aware of, please let me know.
MATLAB与图像处理(一):图像中结构张量的求法(Structure Tensor) 1.结构张量的作用:       能够区分图像中的平坦区域,边缘,角点; 2.图像中的结构张量的定义    1)是一个矩阵;    2)与图像的水平,垂直梯度有关,定义如下: 在MATLAB中,可以用如下语句求解:[Ix,Iy]=gradient(Image); 3)求出结构张量矩阵的行列式,和迹(矩阵对角线之和)   行列式:K=det(E);   迹:   阅读详情

相关推荐

dinput8.lib

directx 库,必不可少,给缺少该资源的朋友一些帮助吧

洞窟物语本地编译一些问题

源工程:https://github.com/Clownacy/CSE2 编译用IDE:VS2017 可将代码直接项目生成,看是否成功。 报错1:Organya.cpp引发的找不到字符的问题。 解决方法是到对应目录下将这个文件重新指定为utf8的格式, 可用记事本或者其他文本编辑app打开,更换格式再保存,再重新生成就不报这个错了。 报错2:链接时dinput.lib链不上,报错 这个起初还以为要打开 项目名(CSE2)-->属性 然后更改win SDK版本,结果好像问题不在此,我的默

良仔在发呆 470

固件-CPU 1511T-1 PN-6ES7511-1TK01-0AB0-V2.9.7.zip

固件_CPU 1511T-1 PN_6ES7511-1TK01-0AB0_V2.9.7

Thrustmaster Hotas Warthog飞行操作杆开发

本文主要介绍了一个简单的demo。在windows下通过DirectInput开发套件读取Thrustmaster Hotas Warthog飞行操作杆数据,要求后续可能会用C++进行更加深入的二次开发。

灵性化火博客 2500

一个DirectInput演示程序

一个DirectInput演示程序       使用DirectInput8组件,获取键盘或鼠标的缓冲数据方式,并使用了事件通知将数据显示在屏幕上。程序首先创建DirectInput8对象、鼠标键盘设备,并为它们设置相应的方式,后进入主循环。主循环使用阻塞方式,等待鼠标或键盘事件到来(鼠标移动、按键、滚轮,键盘击键),以下为全部代码,并附有详细注释。程序是VC6控制台模式下的,注意Win32函

dijkstar的专栏 3379

DirectX SDK April 2005旧版本VC6可能造成编译问题(转自http://7622.com/list/54782.htm)

http://7622.com/list/54782.htm 使用 DirectInput  的  IDirectInputDevice8::SetDataFormat  可能无法正常编译dinput8.lib(dilib2.obj) : fatal error LNK1103: debugging information corrupt; recompile module 去掉使用它的

tiewen的专栏 1730

DirectX 9.0 SDK(Summer 2004)软件包,已搜了很久

微软官网的链接早就失效 /*****************************************************************************************/1、配合VC6.0的DirectX 9.0b SDK(包含DirectShow): 百度云盘地址:http://pan.baidu.com/share/link?shareid=129056

1108

DirectX9.0 Summer 2004介绍

今天下载了DX9.0 2004 版,立即把原来的旧版本删除了,重新安装新版本,一打开帮助文档,看看有什么更新,仔细看了一下,大多数没有改变,主要改动以下几方面:·  DirectX Graphics ·  DirectInput ·  DirectSound还有加入了新的Sample Framework,它可以支持新的UI界面,比较不错。DirectDraw是建议不要再使用

大坡3D软件开发 5899

VC6 下配置DirectShow SDK开发环境及下载地址

1、首先下载DirectX 9 SDK开发包。这个现在还是比较难搞到的,可以到微软官网上去下载。在《关于DirectShow的杂想》一文中介绍过,自从DirectX 9.0c sdk后,DirectShow SDK不再包含在DirectX SDK中,而是以Extras的形式发布,后来集成了一部分SDK到Windows SDK中,也就是说后来的环境(比如vs2005、vs2008环境下)比较难配置,

ccx_john的专栏 1760

设置Visual Studio 2005DirectX的关联

第一步:安装DirectX SDK(June 2008)和Microsoft Visual Studio 2005(点击名称下载)第二步:设置DirectX和Visual Studio 2005关联: 打开Visual Studio 2005,将D3D需要的Lib 文件目录在链接器中指定路径。具体步骤是:工具->选项->项目和解决方案->VC++目录,在右边“显示以下内容的目录”中选择

我的路 1690

fatal error LNK1103: debugging information corrupt; recompile module

<br />这个错误产生的原因是:<br />2003年2月的SDK是支持VC6的最后一版,在此之后的就都是使用VC7/VC8来开发的了。<br />随着VC7/VC8中新的debug信息格式和一些安全检查机制的导入,在VC6上使用这些库的Debug版本的时候就会产生如题的链接错误。具体而言,你可能VC6上使用了XP SP2,Windows 2003或者Windows 2003 R2版本的SDK。<br /><br />解决办法:<br />1.用Release版编译,不过这样就没法调试了。<br />2

朱海辉的专栏 583

DirectInput输入——键盘设备

工程添加以下库:dxguid.lib         d3d9.lib         d3dx9.lib         winmm.lib         dinput8.lib 包含头文件:#include "dinput.h" /* **全局变量: */   //主DInput COM对象   LPDIRECTINPUT8 lpdi = NULL; ...

weixin_34217711的博客 447

VC++游戏编程基础无法找到“d3d9.h”问题

经反复查阅是缺少Direct X SDK导致的,我用的是VC++6.0,支持Direct X SDK 9.0b及之前的版本,最新版DX SDK(JUNE)VC6驾驭不了。。。下面是我解决问题的思路(只供参考) 尝试一:下载DX SDK 9.0b ILEPLANT下载directx sdk 9.0b 网址: https://www.fileplanet.com/archive/p-16004...

皮卡qiu~的博客 1862
dknt
博客等级 码龄22年 1粉丝 1原创
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值