D3D9 Direct3DCreate9() 链接器错误,但所有其他 D3D 函数都有效
D3D9 Direct3DCreate9() Linker error, but all other D3D functions work
我正在尝试为"Direct3D9"创建一个包装器,以便在我自己的应用程序中快速轻松地使用"DirectX 9"。 除了唯一的函数"Direct3DCreate9"之外,一切都编译得很好。 如果我注释掉该函数,那么所有其他 Direct X 函数都可以很好地编译。我从Microsoft网站下载了SDK(就像我之前多次一样)https://www.microsoft.com/en-us/download/details.aspx?id=6812。
我尝试在Visual Studio的项目设置中链接d3d9.lib。 我尝试使用 #pragma 评论链接器#pragma comment (lib, "d3d9.lib")
我在网上找不到任何类似的问题。 我能找到的只有与我相关的问题是那些合法地没有链接到图书馆的人。
bool D3D9::Initialize(HWND i_hWnd)
{
D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory(&d3dpp, sizeof(d3dpp));
d3dpp.Windowed = TRUE;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.hDeviceWindow = i_hWnd;
// If I comment this line out, it compiles fine
m_pD3D = Direct3DCreate9(D3D_SDK_VERSION); // LINKER ERROR
HRESULT hr = m_pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, i_hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &m_pDevice);
return true;
}
当我注释掉代码调用Direct3DCreate9
行时,我希望 Direct3DDevice 本身上的所有其他 D3D 调用都存在链接器错误。 但是一旦我评论出一行,编译就没有问题了。
我在Windows 10上使用Visual Studio 2015。
我修复了它。
问题是我需要链接到Microsoft DirectX SDK(2010 年 6 月)\Lib\x86。
我链接到Microsoft DirectX SDK(2010 年 6 月)\Lib\x64。
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 有没有什么方法可以使用一个函数中定义的常量变量,也可以由c++中同一程序中的其他函数使用
- GL_SHADERSTORAGE_BUFFER位置是否与其他着色器位置冲突
- 为什么我不能在 C++ 中的特定函数重载中调用同一函数的任何其他重载?
- 在其他文件中创建类时在 c++ 项目中不起作用
- 类与私有变量的其他类之间的线程安全性
- 将--whole archive链接器选项与CMake和具有其他库依赖项的库一起使用
- GlobalAlloc而不是其他分配方法
- C++从其他 constexpr 创建 lambda 不能按顺序执行 Constexpr
- 断言中的Fold表达式在某些计算机上编译,但在其他计算机上不编译
- Visual Studio(或任何其他工具)能否将地址解释为调用堆栈(boost上下文)的开头
- 结构和双指针隐藏在其他结构中,多层混淆
- UE4在OnComponentBeginOverlap上铸造其他actor
- 当我在其中一个线程执行中(在activemq-cpp中)捕获到特定值时,我如何终止/停止所有其他线程
- MESI协议和std::atomic-它是否确保所有写入立即对其他线程可见?
- 保留对其他类的成员函数的引用
- 为什么将值返回函数传递给重载=运算符对运算符函数有效,而对其他运算符无效
- D3D9 Direct3DCreate9() 链接器错误,但所有其他 D3D 函数都有效
- 在运行时从OpenGL上下文切换到D3D/DX上下文(或其他上下文)