VC6 编译错误error LNK2001: unresolved external symbol "public: virtual struct
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VC6 编译错误error LNK2001: unresolved external symbol "public: virtual struct相关的知识,希望对你有一定的参考价值。
我在工程中建了一个类,然后就出现了编译错误
Dib1.obj : error LNK2001: unresolved external symbol "public: virtual struct CRuntimeClass * __thiscall CDib::GetRuntimeClass(void)const " (?GetRuntimeClass@CDib@@UBEPAUCRuntimeClass@@XZ)
程序如下// Dib1.h: interface for the CDib class.
#if !defined(AFX_DIB1_H__2C05849B_CCF5_473F_BBE6_698086261817__INCLUDED_)
#define AFX_DIB1_H__2C05849B_CCF5_473F_BBE6_698086261817__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define WIDTHBYTES(bits) (((bits) + 31) / 32 * 4)
class CDib : public CObject
public:
BOOL Save(CFile *pFile);
CSize GetDibSaveDim();
BOOL Draw(CDC* pDC, CPoint point, CSize size, CPoint spoint,CSize ssize);
BOOL Draw(CDC* pDC, CPoint point, CSize size);
BOOL IsEmpty();
BOOL Read(CFile* pFile);
void Clear();
DWORD m_dwSizeImage;//位图数据的字节数
LPBYTE m_pBits;//位图数据指针
LPVOID m_lpvColorTable;//位图color表指针
LPBITMAPINFOHEADER m_lpbmih;//信息头指针
LPBITMAPFILEHEADER m_bmfh; //文件头指针
CDib();
virtual ~CDib();
DECLARE_SERIAL(CDib)
private:
void ComputeMetrics();
;
#endif // !defined(AFX_DIB1_H__2C05849B_CCF5_473F_BBE6_698086261817__INCLUDED_)
// Dib1.cpp: implementation of the CDib class.
#include "stdafx.h"
#include "Dib1.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
// Construction/Destruction
CDib::CDib()
m_bmfh=NULL;
m_lpbmih = NULL;
m_pBits = NULL;
CDib::~CDib()
Clear();
void CDib::Clear()
if(m_bmfh)
delete[] m_bmfh;
if (m_lpbmih)
delete[] m_lpbmih;
if (m_pBits)
delete[] m_pBits;
BOOL CDib::Read(CFile *pFile)
省略
BOOL CDib::Save(CFile *pFile)
省
void CDib::ComputeMetrics()
if(m_lpbmih->biSize != sizeof(BITMAPINFOHEADER))
TRACE("Not a valid Windows bitmap -- probably an OS/2 bitmap\n");
throw new CException;
// 保存图象数据内存大小到CDib对象的数据成员中
m_dwSizeImage = m_lpbmih->biSizeImage;
// 如果图象数据内存大小为0,则重新计算
if(m_dwSizeImage == 0)
DWORD dwBytes = ((DWORD) m_lpbmih->biWidth * m_lpbmih->biBitCount) / 32;
if(((DWORD) m_lpbmih->biWidth * m_lpbmih->biBitCount) % 32)
dwBytes++;
dwBytes *= 4;
m_dwSizeImage = dwBytes * m_lpbmih->biHeight;
// 设置DIB中的调色板指针
m_lpvColorTable = (LPBYTE) m_lpbmih + sizeof(BITMAPINFOHEADER);
BOOL CDib::IsEmpty()
if(m_lpbmih == NULL && m_pBits == NULL)
return true;
else
return false;
我看了一下都类添进去了呀,重新开过也不好使呀。还有没有别的方法呀。谢谢
在树形目录中找
这个错误是没有找到相应的资源才产生的,把那个新建的类重新加入到工程中,就可以了
**********************************
如果不是这样的,把工程关闭重新打开,应该就可以了 参考技术A 我也遇到过这样的问题,我的是把CDib1.h里的DECLARE_DYNCREATE(CDib1))删掉就好了。希望对你有帮助!
以上是关于VC6 编译错误error LNK2001: unresolved external symbol "public: virtual struct的主要内容,如果未能解决你的问题,请参考以下文章
VC++ 6.0中遇到 error LNK2001错误怎么办?
error LNK2001: unresolved external symbol __imp__WSAStartup@8 SOCKET(转)
编译错误,如何解决error LNK2001: unresolved external symbol
错误 1 error LNK2001: 无法解析的外部符号 _mainCRTStartup 错误 2 error LNK1120: 1 个无法解析的外部命