Avatar billede Slettet bruger
18. marts 2004 - 10:43 Der er 26 kommentarer og
1 løsning

Link fejl fra MS Visual c++

Når jeg prøver at afvikle en c++ kode får jeg følgende fejl.:

LINK : fatal error LNK1104: cannot open file "nafxcwd.lib"

Hvordan får jeg så lige den fejl væk / skaffer filen, for den ligger ikke på min computer.
Avatar billede jpk Nybegynder
18. marts 2004 - 10:49 #1
Du mener når du kompilerer, ikke..?

Filen bør ligge på din PC, hvis du har Visual Studio installeret!
Hvilken version bruger du?
Avatar billede Slettet bruger
18. marts 2004 - 11:05 #2
Jo det var kompilere

JEg har søgt på min computer men finder den ikke!!

Har version 6 installeret!! og kan ikke umiddelbart finde nogen former for opdateringer til den!
Avatar billede jpk Nybegynder
18. marts 2004 - 11:12 #3
Der er forskellige versioner af VC++ 6, er det Pro eller EE eller?
Avatar billede jpk Nybegynder
18. marts 2004 - 11:16 #4
Det er lib-filen for den statisk-linkbare version af MFC. Du kan prøve at linke dynamisk i stedet, det er noget lign.:
Project->Settings, General, vælg "Using MFC in a shared DLL"
Avatar billede Slettet bruger
18. marts 2004 - 11:21 #5
Jeg kan desværre ikke se hvilken version det er så det er nok EE

Når jeg gør som du foreskriver får jeg nu istedet følgende fejl.:

msvcrtd.lib(crtexe.obj) : error LNK2001: unresolved external symbol _main
Debug/NamePltDlg.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
Avatar billede jpk Nybegynder
18. marts 2004 - 11:24 #6
Hvilken type projekt?
Win32, MFC, DLL, Console, ...
Avatar billede Slettet bruger
18. marts 2004 - 11:27 #7
Ja?!

Det er en c++ fil som fulgte med en maskine, så man kunne lave app selv. Så det er ikke noget jeg selv har oprettet fra bunden.
Avatar billede jpk Nybegynder
18. marts 2004 - 11:29 #8
Tjo, men prøv at kigge på koden..?
Avatar billede Slettet bruger
18. marts 2004 - 11:56 #9
// NamePltDlg.cpp : implementation file
//

#include "stdafx.h"
#include "NamePlt.h"
#include "NamePltDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CNamePltDlg dialog

CNamePltDlg::CNamePltDlg(CWnd* pParent /*=NULL*/)
    : CDialog(CNamePltDlg::IDD, pParent)
{
    //{{AFX_DATA_INIT(CNamePltDlg)
    m_strName = _T("");
    m_strPosition = _T("");
    //}}AFX_DATA_INIT
    // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
    m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CNamePltDlg::DoDataExchange(CDataExchange* pDX)
{
    CDialog::DoDataExchange(pDX);
    //{{AFX_DATA_MAP(CNamePltDlg)
    DDX_Control(pDX, IDC_COMBO_TEMPLATE, m_cbTemplate);
    DDX_Text(pDX, IDC_EDIT_NAME, m_strName);
    DDX_Text(pDX, IDC_EDIT_POSITION, m_strPosition);
    //}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CNamePltDlg, CDialog)
    //{{AFX_MSG_MAP(CNamePltDlg)
    ON_WM_PAINT()
    ON_WM_QUERYDRAGICON()
    ON_BN_CLICKED(IDC_BTN_PRINT, OnBtnPrint)
    //}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CNamePltDlg message handlers

BOOL CNamePltDlg::OnInitDialog()
{
    // Set Paremeter
    m_strName.LoadString(IDS_NAME_STRING);
    m_strPosition.LoadString(IDS_POSITION_STRING);

    CDialog::OnInitDialog();

    // Set the icon for this dialog.  The framework does this automatically
    //  when the application's main window is not a dialog
    SetIcon(m_hIcon, TRUE);            // Set big icon
    SetIcon(m_hIcon, FALSE);        // Set small icon
   
    // Set Combobox
    m_cbTemplate.SetCurSel(0);

   
    return TRUE;  // return TRUE  unless you set the focus to a control
}

// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.

void CNamePltDlg::OnPaint()
{
    if (IsIconic())
    {
        CPaintDC dc(this); // device context for painting

        SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

        // Center icon in client rectangle
        int cxIcon = GetSystemMetrics(SM_CXICON);
        int cyIcon = GetSystemMetrics(SM_CYICON);
        CRect rect;
        GetClientRect(&rect);
        int x = (rect.Width() - cxIcon + 1) / 2;
        int y = (rect.Height() - cyIcon + 1) / 2;

        // Draw the icon
        dc.DrawIcon(x, y, m_hIcon);
    }
    else
    {
        CDialog::OnPaint();
    }
}

// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CNamePltDlg::OnQueryDragIcon()
{
    return (HCURSOR) m_hIcon;
}

// Print Label
void CNamePltDlg::OnBtnPrint()
{
    UpdateData(TRUE);

    try {
        IBrssComPtr    pObjDoc(__uuidof(Document));

        CString    strPath = _T("C:\\Program Files\\Brother bPAC SDK\\Templates\\");
        if (m_cbTemplate.GetCurSel() <= 0)
            strPath += _T("NamePlate1.lbl");
        else
            strPath += _T("NamePlate2.lbl");
        if (pObjDoc->Open(strPath.AllocSysString()))
        {
            int nIndex = pObjDoc->GetTextIndex(_bstr_t(_T("Company")));
            pObjDoc->SetText(nIndex, m_strPosition.AllocSysString());
            nIndex = pObjDoc->GetTextIndex(_bstr_t(_T("Name")));
            pObjDoc->SetText(nIndex, m_strName.AllocSysString());
            pObjDoc->DoPrint((PrintOptionConstants)0, _bstr_t(_T("0")));
            pObjDoc->Close();
        }
    }
    catch (_com_error e) {
      AfxMessageBox(e.ErrorMessage());
    }
}
Avatar billede jpk Nybegynder
18. marts 2004 - 11:58 #10
Har du ikke selv oprettet et nyt projekt via File->New->Project?
Avatar billede Slettet bruger
18. marts 2004 - 12:02 #11
Nope.... trykkede bare på c++ filen :)
Avatar billede jpk Nybegynder
18. marts 2004 - 12:11 #12
"C++ filen"???
Er det den .cpp fil du viser eller en dsp/dsw fil eller?
Avatar billede Slettet bruger
18. marts 2004 - 12:44 #13
Det er en c++ fil, dvs .cpp
Avatar billede jpk Nybegynder
18. marts 2004 - 12:55 #14
Den fil du viser er uden tvivl en del af et projekt med flere filer, har du ikke også dem?
Avatar billede Slettet bruger
18. marts 2004 - 13:11 #15
jo jeg har dem alle :) skal jeg komme med koden til dem også?!
Avatar billede jpk Nybegynder
18. marts 2004 - 13:22 #16
Nej, men er der ikke en .dsp eller .dsw fil?
(eller begge)
Avatar billede Slettet bruger
18. marts 2004 - 13:28 #17
Jo det er der!
Avatar billede jpk Nybegynder
18. marts 2004 - 13:30 #18
Det er jo den (en af dem) du skal bruge til at åbne projektet i VC++...
Avatar billede Slettet bruger
18. marts 2004 - 14:04 #19
Det ser ikke umiddelbart ud til at hjælpe :(
Avatar billede jpk Nybegynder
18. marts 2004 - 14:06 #20
Hvad betyder "Det ser ikke umiddelbart ud til at hjælpe", får du nøjagtig samme fejl eller?
Avatar billede Slettet bruger
18. marts 2004 - 14:30 #21
Ja nøjagtigt samme fejl
Avatar billede jpk Nybegynder
18. marts 2004 - 14:45 #22
"unresolved external symbol _main" betyder at der forventes en main funktion og at det dermed skulle være et console projekt!
Det er det jo ikke...
(Har du ikke haft den fejl før?)
Avatar billede Slettet bruger
19. marts 2004 - 09:03 #23
Hmm det kan være at de c++ filer som følger med KUN er til funktionerne også at man selv skal lave sit program, som så anvender de funktioner som ligger i disse filer!!

Kan man bare include c++ filer som man gør det med .h filer?
Avatar billede jpk Nybegynder
19. marts 2004 - 09:43 #24
Jeg har ikke VC++ 6 installeret, så jeg kan ikke se præcis hvordan det skal gøres, jeg mener dog du kan skifte fra console til windows i Projekt->Settings, fanebladet ?Link?.
Der hvor der står subsystem:console, skal der stå subsystem:windows
Avatar billede Slettet bruger
19. marts 2004 - 12:22 #25
oki tak jeg vil forsøge at rode med det.

tak for hjælpen
Avatar billede Slettet bruger
19. marts 2004 - 12:22 #26
du kan lave et svar så får du pointene
Avatar billede jpk Nybegynder
19. marts 2004 - 12:35 #27
Okay, takker...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester