Programm von VS2008 in VS2003 kompilieren



  • Hi,

    Brauche mal wieder hilfe und zwar gibt es von peak-system die DLL-Dateien (und Treiber) zum arbeiten mit CAN-Adaptern. Nun ist es so das die auch ein Beispiel-Programm haben und zwar hier (PCAN-USB-Package) was ich immer zum testen für den CAN-Adapter benutzt habe.

    Jetzt gibt es aber eine neue Version die auch mit Vista funktioniert. Jetzt ist es aber so das die, die neue Version mit VS2005/2008 erstellt haben und ich sie nicht mehr mit VS2003 kompilieren kann.

    Habe auch schon VS2008 Express Edition runtergeladen aber da bekomme ich den Fehler das die afxwin.h nicht gefeunden wurde. Habe durch Google auch herausgefunden das diese nur in der Standart-Version von VS2008 enthalten ist.

    Wie kann ich nun das Beispiel Programm von denen Kompilieren, den die geben nur die Quellcodedateien und komilieren muss man es selbst 😞


  • Mod

    Dann versuch doch einen Downgrade des Projektes auf 2003.

    http://blog.m-ri.de/index.php/2008/03/08/vs-tipps-tricks-downgrade-fuer-vc-200x-projekte/

    Vielleicht hast Du Glück und es geht einfach so.



  • Nein geht nicht das habe ich schon versucht, dann kommt "Datei kann nicht geöffnet werden". Dies funktioniert auch nur von 2005 -> 2003 oder 200 -> 2005 aber nicht von 2008 -> 2003.

    Ich kann ja ein neues Projekt anlegen und die Dateien da hinzufügen aber das Problem sind ein paar Codes die es in VS2003 nicht gibt und einer macht mir besondern probleme und zwar "_ultoa_s"

    hier der Codeblock dazu

    void CICDILightDlg::OnEnKillfocusTxtdevnumber()
    {
    	char *StopStr;
    	DWORD dwValue;
    	char tempText[12];
    
    	UpdateData(TRUE);
    
    	// Get the desired Device Number in text
    	// and convert it to DWORD.
    	//
    	StopStr = "\r\n";	
    	dwValue = strtoul(txtDeviceNumber,&StopStr,10);	
    
    	// Now we convert the value back to string. 
    	// The convertion check automatic for a wrong value.
    	//
    	_ultoa_s(dwValue, tempText,12,10);
    	txtDeviceNumber = tempText;
    	UpdateData(FALSE);
    }
    

    Wenn ich das lösen könnte dann müsste ich es in 2003 komilieren klnnen, hoffe ich zumindest

    EDIT: Ups hab noch eine Codstelle vergessen, hier geht es um das "_itoa_s"

    // String conversion functions
    //
    CString CICDILightDlg::IntToStr(int iValue)
    {
    	char chToReceive[20];
    
    	_itoa_s(iValue, chToReceive, 20, 10);
    
    	return  chToReceive;
    }
    

  • Mod

    Und? Lies die Doku. Das sind doch nur einfach sichere Varianten der entsprechenden Funktionen ohne _s. In den meisten Fällen sit nur der letzte Parameter noch hinzugekommen.

    Ein Blick in die MSDN hätte Dir dies veraten.



  • ähm ja hab ich gemacht aber es funktioniert nicht -.- bekomme danach noch mehr fehler 😞

    ICDILight error LNK2019: Nicht aufgelöstes externes Symbol '"public: __thiscall PCANLight::~PCANLight(void)" (??1PCANLight@@QAE@XZ)', verwiesen in Funktion '"public: void * __thiscall PCANLight::`scalar deleting destructor'(unsigned int)" (??_GPCANLight@@QAEPAXI@Z)'
    ICDILight error LNK2019: Nicht aufgelöstes externes Symbol '"public: __thiscall PCANLight::PCANLight(void)" (??0PCANLight@@QAE@XZ)', verwiesen in Funktion '"private: void __thiscall CICDILightDlg::InitializeControls(void)" (?InitializeControls@CICDILightDlg@@AAEXXZ)'
    ICDILight error LNK2019: Nicht aufgelöstes externes Symbol '"public: bool __thiscall PCANLight::InitializeAPI(enum HardwareType)" (?InitializeAPI@PCANLight@@QAE_NW4HardwareType@@@Z)', verwiesen in Funktion '"public: void __thiscall CICDILightDlg::OnBnClickedBtninit(void)" (?OnBnClickedBtninit@CICDILightDlg@@QAEXXZ)'
    ICDILight error LNK2019: Nicht aufgelöstes externes Symbol '"public: enum CANResult __thiscall PCANLight::Close(void)" (?Close@PCANLight@@QAE?AW4CANResult@@XZ)', verwiesen in Funktion '"public: void __thiscall CICDILightDlg::OnBnClickedBtnrelease(void)" (?OnBnClickedBtnrelease@CICDILightDlg@@QAEXXZ)'
    ICDILight error LNK2019: Nicht aufgelöstes externes Symbol '"public: enum CANResult __thiscall PCANLight::DllVersionInfo(char *)" (?DllVersionInfo@PCANLight@@QAE?AW4CANResult@@PAD@Z)', verwiesen in Funktion '"public: void __thiscall CICDILightDlg::OnBnClickedBtndllinfo(void)" (?OnBnClickedBtndllinfo@CICDILightDlg@@QAEXXZ)'
    ICDILight error LNK2019: Nicht aufgelöstes externes Symbol '"public: enum CANResult __thiscall PCANLight::GetUSBDeviceNr(unsigned long *)" (?GetUSBDeviceNr@PCANLight@@QAE?AW4CANResult@@PAK@Z)', verwiesen in Funktion '"public: void __thiscall CICDILightDlg::OnBnClickedBtndevget(void)" (?OnBnClickedBtndevget@CICDILightDlg@@QAEXXZ)'
    ICDILight error LNK2019: Nicht aufgelöstes externes Symbol '"public: enum CANResult __thiscall PCANLight::Init(enum Baudrates,enum FramesType)" (?Init@PCANLight@@QAE?AW4CANResult@@W4Baudrates@@W4FramesType@@@Z)', verwiesen in Funktion '"public: void __thiscall CICDILightDlg::OnBnClickedBtninit(void)" (?OnBnClickedBtninit@CICDILightDlg@@QAEXXZ)'
    ICDILight error LNK2019: Nicht aufgelöstes externes Symbol '"public: enum CANResult __thiscall PCANLight::Init(enum Baudrates,enum FramesType,unsigned long,unsigned short)" (?Init@PCANLight@@QAE?AW4CANResult@@W4Baudrates@@W4FramesType@@KG@Z)', verwiesen in Funktion '"public: void __thiscall CICDILightDlg::OnBnClickedBtninit(void)" (?OnBnClickedBtninit@CICDILightDlg@@QAEXXZ)'
    ICDILight error LNK2019: Nicht aufgelöstes externes Symbol '"public: enum CANResult __thiscall PCANLight::MsgFilter(unsigned long,unsigned long,enum MsgTypes)" (?MsgFilter@PCANLight@@QAE?AW4CANResult@@KKW4MsgTypes@@@Z)', verwiesen in Funktion '"public: void __thiscall CICDILightDlg::OnBnClickedBtnsetfilter(void)" (?OnBnClickedBtnsetfilter@CICDILightDlg@@QAEXXZ)'
    ICDILight error LNK2019: Nicht aufgelöstes externes Symbol '"public: enum CANResult __thiscall PCANLight::Read(struct TPCANMsg *)" (?Read@PCANLight@@QAE?AW4CANResult@@PAUTPCANMsg@@@Z)', verwiesen in Funktion '"private: void __thiscall CICDILightDlg::ReadMessage(void)" (?ReadMessage@CICDILightDlg@@AAEXXZ)'
    ICDILight error LNK2019: Nicht aufgelöstes externes Symbol '"public: enum CANResult __thiscall PCANLight::ReadEx(struct TPCANMsg *,struct TPCANTimestamp *)" (?ReadEx@PCANLight@@QAE?AW4CANResult@@PAUTPCANMsg@@PAUTPCANTimestamp@@@Z)', verwiesen in Funktion '"private: void __thiscall CICDILightDlg::ReadMessage(void)" (?ReadMessage@CICDILightDlg@@AAEXXZ)'
    ICDILight error LNK2019: Nicht aufgelöstes externes Symbol '"public: enum CANResult __thiscall PCANLight::ResetFilter(void)" (?ResetFilter@PCANLight@@QAE?AW4CANResult@@XZ)', verwiesen in Funktion '"public: void __thiscall CICDILightDlg::OnBnClickedBtnresetfilter(void)" (?OnBnClickedBtnresetfilter@CICDILightDlg@@QAEXXZ)'
    ICDILight error LNK2019: Nicht aufgelöstes externes Symbol '"public: enum CANResult __thiscall PCANLight::SetRcvEvent(void *)" (?SetRcvEvent@PCANLight@@QAE?AW4CANResult@@PAX@Z)', verwiesen in Funktion '"private: unsigned long __stdcall CICDILightDlg::CANReadThreadFunc(void *)" (?CANReadThreadFunc@CICDILightDlg@@AAGKPAX@Z)'
    ICDILight error LNK2019: Nicht aufgelöstes externes Symbol '"public: enum CANResult __thiscall PCANLight::SetUSBDeviceNr(unsigned long)" (?SetUSBDeviceNr@PCANLight@@QAE?AW4CANResult@@K@Z)', verwiesen in Funktion '"public: void __thiscall CICDILightDlg::OnBnClickedBtndevset(void)" (?OnBnClickedBtndevset@CICDILightDlg@@QAEXXZ)'
    ICDILight error LNK2019: Nicht aufgelöstes externes Symbol '"public: enum CANResult __thiscall PCANLight::VersionInfo(char *)" (?VersionInfo@PCANLight@@QAE?AW4CANResult@@PAD@Z)', verwiesen in Funktion '"public: void __thiscall CICDILightDlg::OnBnClickedBtninfo(void)" (?OnBnClickedBtninfo@CICDILightDlg@@QAEXXZ)'
    ICDILight error LNK2019: Nicht aufgelöstes externes Symbol '"public: enum CANResult __thiscall PCANLight::Write(struct TPCANMsg *)" (?Write@PCANLight@@QAE?AW4CANResult@@PAUTPCANMsg@@@Z)', verwiesen in Funktion '"public: void __thiscall CICDILightDlg::OnBnClickedBtnwrite(void)" (?OnBnClickedBtnwrite@CICDILightDlg@@QAEXXZ)'
    ICDILight fatal error LNK1120: 16 unaufgelöste externe Verweise



  • Hallo,

    entweder hast du vergessen, die Dateien, die z.B.

    PCANLight::PCANLight

    enthalten, mit in das Projekt aufzunehmen, oder du musst den Linker-Eingaben noch eine Bibliothek hinzufügen.

    MfG,

    Probe-Nutzer



  • *an den Kopf hau*

    genau das war es, hatte die PCANLight.cpp & PCANLight.h nicht dem Projekt hinzugefügt. Wie kann man nur so doof sein^^

    DANKE DIR 😃


Anmelden zum Antworten