J'ai téléchargé un projet qui a été développé à l'origine dans MFC 4.1. J'essaye de construire ce projet dans MFC 6.0. Lorsque je l'ai ouvert en utilisant Open WorkSpace
, et le construire, puis l'erreur suivante est venue.Erreur lors de la construction du projet MFC 4.1 dans MFC 6.0
Lien: LNK1104 d'erreur fatale: ne peut pas ouvrir le fichier « mfc42ud.lib »
Sur Internet, je trouve une solution pour corriger cette erreur en ignorant cette bibliothèque de paramètres du projet. Je l'ai fait et une autre erreur sur des lignes similaires est apparue pour le fichier mfcs42ud.lib
. Et j'ai réparé ça aussi.
Quand j'ai ajouté les deux fichiers .lib ignorer la liste, et de le construire, je reçois 901 erreurs comme ci-dessous ....
------ -------------- Configuration: doodads - Débogage Win32 Unicode -------------------- Connexion ... doodads.obj:
erreur LNK2001: symbole externe non résolu __afxForceEXCLUDE ADDRESS.OBJ: erreur LNK2001: symbole externe non résolu __afxForceEXCLUDE expose.obj: erreur LNK2001: symbole externe non résolu __afxForceEXCL UDE progress.obj: erreur LNK2001: symbole externe non résolu __afxForceEXCLUDE MaskDlg.obj: erreur LNK2001: symbole externe non résolu __afxForceEXCLUDE SETKEY.OBJ: erreur LNK2001: symbole externe non résolu __afxForceEXCLUDE SPINNER.OBJ: erreur LNK2001: symbole externe non résolu Statistiques __afxForceEXCLUDE obj: erreur LNK2001: symbole externe non résolu __afxForceEXCLUDE ANIME.OBJ: erreur LNK2001: symbole externe non résolu __afxForceEXCLUDE StdAfx.obj : erreur LNK2001: symbole externe non résolu __afxForceEXCLUDE MAINFRM.OBJ: erreur LNK2001: symbole externe non résolu __afxForceEXCLUDE DODADDOC. OBJ: erreur LNK2001: symbole externe non résolu __afxForceEXCLUDE DoDadvw.obj: erreur LNK2001: non résolu symbole externe __afxForceEXCLUDE doodads.obj: erreur LNK2001: symbole externe non résolu __afxForceSTDAFX ADDRESS.OBJ: Erreur LNK2001: symbole externe non résolu __afxForceSTDAFX expose.obj: erreur LNK2001: symbole externe non résolu __afxForceSTDAFX progress.obj: erreur LNK2001: externe non résolu Symbole __afxForceSTDAFX MaskDlg.obj: erreur LNK2001: symbole externe non résolu __afxForceSTDAFX SETKEY.OBJ: erreur LNK2001: symbole externe non résolu __afxForceSTDAFX SPINNER.OBJ: erreur LNK2001: symbole externe non résolu __afxForceSTDAFX stats.obj: erreur LNK2001: symbole externe non résolu __afxForceSTDAFX ANIME.OBJ: erreur LNK2001: symbole externe non résolu __afxForceSTDAFX StdAfx.obj: erreur LNK2001: symbole externe non résolu __afxForceSTDAFX MAINFRM.OBJ: erreur LNK2001: symbole externe non résolu __afxForceSTDAFX DODADDOC.OBJ: erreur LNK2001: symbole externe non résolu __afxForceSTDAFX DoDadvw.obj: erreur LNK2001: symbole externe non résolu __afxForceSTDAFX
Voici le fichier de code pour votre référence.
Add.h
// ADD.H - Header file for your Internet Server
// add Extension
#include "resource.h"
class CAddExtension : public CHttpServer
{
public:
CAddExtension();
~CAddExtension();
// Overrides
// ClassWizard generated virtual function overrides
// NOTE - the ClassWizard will add and remove member functions here.
// DO NOT EDIT what you see in these blocks of generated code !
//{{AFX_VIRTUAL(CAddExtension)
public:
virtual BOOL GetExtensionVersion(HSE_VERSION_INFO* pVer);
//}}AFX_VIRTUAL
// TODO: Add handlers for your commands here.
// For example:
void Default(CHttpServerContext* pCtxt,
LPCTSTR pstrOp1, LPCTSTR pstrOp2);
DECLARE_PARSE_MAP()
//{{AFX_MSG(CAddExtension)
//}}AFX_MSG
};
Add.cpp
// ADD.CPP - Implementation file for your Internet Server
// add Extension
#include "stdafx.h"
#include "add.h"
#include <stdio.h>
///////////////////////////////////////////////////////////////////////
// command-parsing map
BEGIN_PARSE_MAP(CAddExtension, CHttpServer)
// TODO: insert your ON_PARSE_COMMAND() and
// ON_PARSE_COMMAND_PARAMS() here to hook up your commands.
// For example:
ON_PARSE_COMMAND(Default, CAddExtension, ITS_PSTR ITS_PSTR)
ON_PARSE_COMMAND_PARAMS("opone=~ optwo=~")
DEFAULT_PARSE_COMMAND(Default, CAddExtension)
END_PARSE_MAP(CAddExtension)
///////////////////////////////////////////////////////////////////////
// The one and only CAddExtension object
CAddExtension theExtension;
///////////////////////////////////////////////////////////////////////
// CAddExtension implementation
CAddExtension::CAddExtension()
{
}
CAddExtension::~CAddExtension()
{
}
BOOL CAddExtension::GetExtensionVersion(HSE_VERSION_INFO* pVer)
{
// Call default implementation for initialization
CHttpServer::GetExtensionVersion(pVer);
// Load description string
TCHAR sz[HSE_MAX_EXT_DLL_NAME_LEN+1];
ISAPIVERIFY(::LoadString(AfxGetResourceHandle(),
IDS_SERVER, sz, HSE_MAX_EXT_DLL_NAME_LEN));
_tcscpy(pVer->lpszExtensionDesc, sz);
return TRUE;
}
///////////////////////////////////////////////////////////////////////
// CAddExtension command handlers
void CAddExtension::Default(CHttpServerContext* pCtxt,
LPCTSTR pstrOp1, LPCTSTR pstrOp2)
{
StartContent(pCtxt);
WriteTitle(pCtxt);
int nOp1;
int nOp2;
if (*pstrOp1 != '~' && *pstrOp2 != '~')
{
nOp1 = atoi(pstrOp1);
nOp2 = atoi(pstrOp2);
char sz[1024];
sprintf(sz, "The result is: %d\n", nOp1 + nOp2);
*pCtxt << sz;
}
else
{
*pCtxt << "<FORM ACTION=\"http://mooseboy/add.dll\" METHOD=\"GET\">";
*pCtxt << "Enter the first number: <INPUT TYPE=\"text\" NAME=\"opone\" VALUE=\"0\" SIZE=10><p>";
*pCtxt << "Enter the second number: <INPUT TYPE=\"text\" NAME=\"optwo\" VALUE=\"0\" SIZE=10><p>";
*pCtxt << "<p> <INPUT TYPE = \"SUBMIT\" VALUE=\"Add it up\">";
*pCtxt << "</FORM>";
}
EndContent(pCtxt);
}
// Do not edit the following lines, which are needed by ClassWizard.
#if 0
BEGIN_MESSAGE_MAP(CAddExtension, CHttpServer)
//{{AFX_MSG_MAP(CAddExtension)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
#endif // 0
///////////////////////////////////////////////////////////////////////
// If your extension will not use MFC, you'll need this code to make
// sure the extension objects can find the resource handle for the
// module. If you convert your extension to not be dependent on MFC,
// remove the comments arounn the following AfxGetResourceHandle()
// and DllMain() functions, as well as the g_hInstance global.
static HINSTANCE g_hInstance;
HINSTANCE AFXISAPI AfxGetResourceHandle()
{
return g_hInstance;
}
BOOL WINAPI DllMain(HINSTANCE hInst, ULONG ulReason,
LPVOID lpReserved)
{
if (ulReason == DLL_PROCESS_ATTACH)
{
g_hInstance = hInst;
}
return TRUE;
}
Pour information, je l'ai marqué Microsoft Foundation Classes utiliser MFC dans une DLL partagée sous l'onglet Général. S'il vous plaît, aidez, TIA.
Bien que vous ayez * supprimé * les bibliothèques de liens qui contiennent ces fonctions, vous obtiendrez bien sûr des références non définies lors de la liaison. Au lieu de simplement supprimer quelques bibliothèques, vous pouvez indiquer à l'éditeur de liens de lier les bibliothèques * correct *. –
@JoachimPileborg Quelles sont les bibliothèques correctes que j'ai besoin d'ajouter, parce que ces deux ne sont pas disponibles dans le projet que j'ai téléchargé, et j'ai une connaissance minimale de MFC .. Pourriez-vous s'il vous plaît guider? Ceci est MFC 6. pour votre référence. –