DirectX编程的关于静态库的error LNK 2019有关问题,研究了一天了,已崩溃
DirectX编程的关于静态库的error LNK 2019问题,研究了一天了,已崩溃
首先声明:
1、刚刚接触建立和调用静态库,用Windows Console Application测试,没问题;
2、DirectX是2010 June版本,用的是DirectX 9;
3、各种文件放在一个工程目录下的话,没有任何问题。
好了,现在正式开始。
下面是Experiment工程的文件winmain.cpp的内容。这个工程是用来调用我即将在2楼给出的Library.lib库文件的。代码如下:
可是结果编译没问题,但是debug的时候出现两个错误,第一个错误是
“error LNK 2019: unresolved external symbol _Direct3DCreate9...”(以下省去若干字)
第二个错误是
error LNK 1120: 1 unresolved externals
网上找了半天了,不过好像没有问这种跟DirectX相关的问题的。郁闷死了。
------解决方案--------------------
重建所有。
或
const wchar_t *XXX=L"...";
改为
wchar_t XXX[]=L"...";
再试试?
------解决方案--------------------
你确定在同一个工程目录下运行的话是没有问题的吗?仔细检查你的各项设定,包括包含的DirectX的头文件和库文件的目录等。
------解决方案--------------------
至于这个问题,可能是头文件中的const的问题吧,你在这方面下个功夫。
首先声明:
1、刚刚接触建立和调用静态库,用Windows Console Application测试,没问题;
2、DirectX是2010 June版本,用的是DirectX 9;
3、各种文件放在一个工程目录下的话,没有任何问题。
好了,现在正式开始。
下面是Experiment工程的文件winmain.cpp的内容。这个工程是用来调用我即将在2楼给出的Library.lib库文件的。代码如下:
#include <windows.h>
#include "F:\\Allen Sherrod\\Chap1\\Library\\Library\\Lib.h"
//#include "Lib.h"
#pragma comment(lib, "F:\\Allen Sherrod\\Chap1\\Library\\Debug\\Library.lib")
//#pragma comment(lib, "Library.lib")
#pragma comment(lib, "d3d9.lib")
#pragma comment(lib, "d3dx9.lib")
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE prevhInst,
LPSTR cmdLine, int show)
{
// Register the window class
WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_CLASSDC, MsgProc,
0, 0, GetModuleHandle(NULL), NULL, NULL,
NULL, NULL, WINDOW_CLASS, NULL };
RegisterClassEx(&wc);
// Create the application's window
HWND hWnd = CreateWindow(WINDOW_CLASS, WINDOW_NAME,
WS_OVERLAPPEDWINDOW, 100, 100,
640, 480, GetDesktopWindow(), NULL,
wc.hInstance, NULL);
// Initialize Direct3D
if (InitializeD3D(hWnd, false))
{
// Show the window
ShowWindow(hWnd, SW_SHOWDEFAULT);
UpdateWindow(hWnd);
// Enter the message loop
MSG msg;
ZeroMemory(&msg, sizeof(msg));
while (msg.message != WM_QUIT)
{
if (PeekMessage(&msg, NULL, 0U, 0U, PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
else
RenderScene();
}
}
// Release any and all resources.
Shutdown();
// Unregister our window.
UnregisterClass(WINDOW_CLASS, wc.hInstance);
return 0;
}
可是结果编译没问题,但是debug的时候出现两个错误,第一个错误是
“error LNK 2019: unresolved external symbol _Direct3DCreate9...”(以下省去若干字)
第二个错误是
error LNK 1120: 1 unresolved externals
网上找了半天了,不过好像没有问这种跟DirectX相关的问题的。郁闷死了。
------解决方案--------------------
重建所有。
或
const wchar_t *XXX=L"...";
改为
wchar_t XXX[]=L"...";
再试试?
------解决方案--------------------
你确定在同一个工程目录下运行的话是没有问题的吗?仔细检查你的各项设定,包括包含的DirectX的头文件和库文件的目录等。
------解决方案--------------------
至于这个问题,可能是头文件中的const的问题吧,你在这方面下个功夫。