首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

啊 链接时报错[Linker Error] Unresolved external 'CDirectDrawer:InitDirectDraw(void * b

2012-03-18 
求救啊!! 链接时报错[Linker Error] Unresolved external CDirectDrawer::InitDirectDraw(void *, bool)

求救啊!! 链接时报错[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

热点排行