Objekt erstellen



  • Ja, ich habe noch eine weitere Klasse gefunden:

    #ifndef _K8055D_
    #define _K8055D_
    
    #include <afx.h>
    
    typedef long (CALLBACK* LONG2LONG)(long);
    typedef void (CALLBACK* VOID2VOID)(void);
    typedef void (CALLBACK* LONGPLONGP2VOID)(long *, long *);
    typedef void (CALLBACK* LONGLONG2VOID)(long, long);
    typedef void (CALLBACK* LONG2VOID)(long);
    typedef bool (CALLBACK* LONG2BOOL)(long);
    typedef long (CALLBACK* VOID2LONG)(void);
    
    class k8055d
    {
    public:
    	k8055d(void);
    	~k8055d(void);
    	long  init(void);
    	long  OpenDevice(long CardAddress);
    	void  CloseDevice();
    	long  ReadAnalogChannel(long Channel);
    	void  ReadAllAnalog(long *Data1, long *Data2);
    	void  OutputAnalogChannel(long Channel, long Data);
    	void  OutputAllAnalog(long Data1, long Data2);
    	void  ClearAnalogChannel(long Channel); 
    	void  ClearAllAnalog();
    	void  SetAnalogChannel(long Channel); 
    	void  SetAllAnalog();
    	void  WriteAllDigital(long Data);
    	void  ClearDigitalChannel(long Channel);
    	void  ClearAllDigital();
    	void  SetDigitalChannel(long Channel);
    	void  SetAllDigital();
    	bool  ReadDigitalChannel(long Channel);
    	long  ReadAllDigital();
    	long  ReadCounter(long CounterNr);
    	void  ResetCounter(long CounterNr);
    	void  SetCounterDebounceTime(long CounterNr, long DebounceTime);
    
    private:
    	bool  dout1;
    	bool  dout2;
    	bool  dout3;
    	bool  dout4;
    	bool  dout5;
    	bool  dout6;
    	bool  dout7;
    	bool  dout8;
    
    	bool  din1;
    	bool  din2;
    	bool  din3;
    	bool  din4;
    	bool  din5;
    
    	long  da1;
    	long  da2;
    	long  ad1;
    	long  ad2;
    
    	long  ct1;
    	long  ct2;
    	long  dbct1;
    	long  dbct2;
    
    	bool initialized;
    	HINSTANCE hDLL;
    	LONG2LONG		pOpenDevice;
    	VOID2VOID		pCloseDevice;
    	LONG2LONG		pReadAnalogChannel;
    	LONGPLONGP2VOID pReadAllAnalog;
    	LONGLONG2VOID	pOutputAnalogChannel;
    	LONGLONG2VOID	pOutputAllAnalog;
    	LONG2VOID		pClearAnalogChannel;
    	VOID2VOID		pClearAllAnalog;
    	LONG2VOID		pSetAnalogChannel;
    	VOID2VOID		pSetAllAnalog;
    	LONG2VOID		pWriteAllDigital;
    	LONG2VOID		pClearDigitalChannel;
    	VOID2VOID		pClearAllDigital;
    	LONG2VOID		pSetDigitalChannel;
    	VOID2VOID		pSetAllDigital;
    	LONG2BOOL		pReadDigitalChannel;
    	VOID2LONG		pReadAllDigital;
    	LONG2LONG		pReadCounter;
    	LONG2VOID		pResetCounter;
    	LONGLONG2VOID	pSetCounterDebounceTime;
    };
    
    #endif
    

    Jetzt bekomme ich aber einen anderen Fehler:

    Error 1 fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d] c:\program files\microsoft visual studio 8\vc\atlmfc\include\afx.h 24



  • Und keine der Dir vom Compiler vorgeschlagenen Lösungen funktioniert?



  • Da müsstest du etwas an deinen Projekteinstellungen verändern - entweder du nimmst die MFC-Unterstützung raus oder du definierst das angegebene Symbol "_AFXDLL".

    PS: Und da haben wir auch den Namen der Klasse: "k8055d"



  • also wenn ich im cpp file #define _AFXDLL reinschreibe ist der Fehler
    immer noch vorhanden. Und was /MD ist verstehe ich nicht



  • was google.de ist verstehst du auch nicht?



  • glaub mir dass ich auch schon gegoogelt habe und nicht der typ bin
    der gleich foren vollpostet. aber ich stehe im moment am anschlag und weis nicht weiter...



  • Den /MD mußt du in den Projekteinstellungen unter C/C++ -> Code Generation -> Laufzeit-Bibliothek umstellen. Und statt des #define würde ich das Symbol auch direkt in den Compile-Optionen ergänzen.

    (PS: Vielleicht reicht es auch, wenn du die Optionen änderst auf "MFC wird nicht verwendet")



  • Auf was mus ich den /MD setzen und wo finde ich die Compile-Optionen?
    Die Option MFC wird nicht verwendet finde ich leider auch nirgends...:(



  • http://msdn2.microsoft.com/en-US/library/2kzt1wy3.aspx

    To set this compiler option in the Visual Studio development environment

    Open the project's Property Pages dialog box. For details, see How to: Open Project Property Pages.
    2.

    Click the C/C++ folder.
    3.

    Click the Code Generation property page.
    4.

    Modify the Runtime Library property.

    (4. ergebnis bei google)

    Falls du nicht weißt wie man die 'Projekt Proberty Pages' aufruft, ist dort ein Link zu einem How-To. Den Link findest du wohl ohne Hilfe, oder?...



  • hier gibts noch mehr interessante infos zum dem thema:

    link



  • shit falscher link, sorry
    ihr braucht nicht draufzuklicken...

    ich hasse copy und past



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum MFC (Visual C++) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • hmmpf schrieb:

    http://msdn2.microsoft.com/en-US/library/2kzt1wy3.aspx

    To set this compiler option in the Visual Studio development environment

    Open the project's Property Pages dialog box. For details, see How to: Open Project Property Pages.
    2.

    Click the C/C++ folder.
    3.

    Click the Code Generation property page.
    4.

    Modify the Runtime Library property.

    (4. ergebnis bei google)

    Falls du nicht weißt wie man die 'Projekt Proberty Pages' aufruft, ist dort ein Link zu einem How-To. Den Link findest du wohl ohne Hilfe, oder?...

    Soweit bin ich auch schon. Die Frage war aber auf was muss ich den /MD setzen.
    Ich habe lediglich MT / MTd / MD / MDd zur auswahl.

    Wenn ich /MT auswähle verschwindet de /MD Fehler jedoch erscheint ein neuer:

    Error 1 fatal error LNK1104: cannot open file 'libcd.lib' Velleman


Anmelden zum Antworten