vc 6 release link error during ReadSymbolTable ... how to solve?
Hi there... i got the following error in a couple of projects i now
want to compile for release:
____________________________________________
LINK : error : Internal error during ReadSymbolTable
ExceptionCode = C0000005
ExceptionFlags = 00000000
ExceptionAddress = 004623F2
NumberParameters = 00000002
ExceptionInformation[ 0] = 00000000
ExceptionInformation[ 1] = 00000008
CONTEXT:
Eax = 003C0DAC Esp = 0012E6D8
Ebx = 00000002 Ebp = 01150246
Ecx = 003C0DAC Esi = 00E61DA4
Edx = 00000000 Edi = 00E61DA4
Eip = 004623F2 EFlags = 00010246
SegCs = 0000001B SegDs = 00000023
SegSs = 00000023 SegEs = 00000023
SegFs = 0000003B SegGs = 00000000
Dr0 = 0012E6D8 Dr3 = 00000002
Dr1 = 01150246 Dr6 = 003C0DAC
Dr2 = 00000000 Dr7 = 00000000
Error executing link.exe.
Tool execution canceled by user.
_____________________________________
after switching linker to /verbose, i found the following entires
*twice* in the same obj-file just before the linker stops:
in one project it is...
[[
Found "protected: virtual int __thiscall CWnd::SetOccDialogInfo(struct
_AFX_OCC_DIALOG_INFO *)"
(?SetOccDialogInfo@CWnd@@MAEHPAU_AFX_OCC_DIALOG_INFO@@@Z)
]]... before the error occures and in the other it is...
[[
Found "protected: virtual void __thiscall CDialog::PreInitDialog(void)"
(?PreInitDialog@CDialog@@MAEXXZ)
]]
i dont even know if i'm right, but... does this mean the linker finds
the same function again (redefined) and breaks linkage? and if i'm
right, how do i solve this? both are functions i dont use directly...i
just derive a class from CDialog and from CWnd and i dont hope i have
to edit microsofts classes ?!?
the error just occures in release, not in debug.
the source for the obj-file producing the 2nd error is (i think)
untouched since creation and rather short (just a class to show some
version-info-dialog) , so i post it:
______________________________________________________
#if
!defined(AFX_VERSIONINFO_H__A79C47F8_D1C8_4A9D_A0B3_C0BF43E31147__INCLUDED_)
#define
AFX_VERSIONINFO_H__A79C47F8_D1C8_4A9D_A0B3_C0BF43E31147__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// VersionInfo.h : header file
//
#include "Resource.h"
/////////////////////////////////////////////////////////////////////////////
// CVersionInfo dialog
class CVersionInfo : public CDialog
{
// Construction
public:
CVersionInfo(CWnd* pParent = NULL); // standard constructor
// Dialog Data
//{{AFX_DATA(CVersionInfo)
enum { IDD = IDD_VERSION };
// NOTE: the ClassWizard will add data members here
//}}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CVersionInfo)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CVersionInfo)
// NOTE: the ClassWizard will add member functions here
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately
before the previous line.
#endif //
!defined(AFX_VERSIONINFO_H__A79C47F8_D1C8_4A9D_A0B3_C0BF43E31147__INCLUDED_)
______________________________________________________
// VersionInfo.cpp : implementation file
//
#include "stdafx.h"
#include "VersionInfo.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CVersionInfo dialog
CVersionInfo::CVersionInfo(CWnd* pParent /*=NULL*/)
: CDialog(CVersionInfo::IDD, pParent)
{
//{{AFX_DATA_INIT(CVersionInfo)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CVersionInfo::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CVersionInfo)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CVersionInfo, CDialog)
//{{AFX_MSG_MAP(CVersionInfo)
// NOTE: the ClassWizard will add message map macros here
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CVersionInfo message handlers