求救啊!! 链接时报错[Linker Error] Unresolved external 'CDirectDrawer::InitDirectDraw(void *, bool)' referenc - C++ Builder / Windows SDK/API
我是用了VC下现有的(别人编好的) DirectDrawer类 里面有个InitDirectDraw(void *, bool)方法.
单独在一个项目中编译DirectDrawer.cpp时通过,但在unit1中使用 InitDirectDraw方法就报错.各位兄弟,帮帮忙吧,这个问题烦了我一天了!
[Linker Error] Unresolved external 'CDirectDrawer::InitDirectDraw(void *, bool)' referenced from D:\ATM&NVR\DLL TEST3\UNIT1.OBJ
我的unit文件
void __fastcall TForm1::FormCreate(TObject *Sender)
{
m_hWnd=GetActiveWindow();
//dDraw.InitDirectDraw(m_hWnd,false);
dDraw.InitDirectDraw(m_hWnd,false);
}
unit 头文件
#ifndef Unit1H
#define Unit1H
#include "../viewsupport/DirectDrawer.h"
#include "../frameinfo/frame.h"
#include "../viewsupport/FrameDrawer.h"
//---------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------
class TForm1 : public TForm
{
__published:// IDE-managed Components
void __fastcall FormCreate(TObject *Sender);
private:// User declarations
private:// User declarations
CDirectDrawer dDraw;
TBrush *bkgndBrush;
HWND m_hWnd;
bool re;
public:// User declarations
__fastcall TForm1(TComponent* Owner);
void __fastcall DrawFrame(Frame* frame);
};
//---------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------
#endif
快疯了!好像就100分 全给了!
[解决办法]
把InitDirectDraw函数实现部分所在的.cpp文件加入到工程中。
[解决办法]
InitDirectDraw可有重载?先看看DirectDrawer单元中,头文件对这个函数是如何声明的?
[解决办法]
如果可以, 把DirectDrawer.CPP贴出来看看
[解决办法]
[Linker Error] Unresolved external 'CDirectDrawer::InitDirectDraw(void *, bool)' referenced from D:\DLLTOPEN\UNIT1.OBJ
这个错误不是参数不正确的问题,好像你前后两次的路径不对
D:\DLLTOPEN\UNIT1.OBJ
D:\ATM&NVR\DLL TEST3\UNIT1.OBJ
[解决办法]
补充一点:
Project→Options→Compiler
需要选中 Compiling 里面的 Treat enum type as ints