Fehlersammlung ! Projekt von Visual Studio 6 auf Visual Studio 8 portieren

sand13r

Erfahrenes Mitglied
Hallihallo liebe Freunde der Sonne,

ich muss gerade ein Projekt von uns das bisher unter Visual Studio 6 geschrieben wurde
nun aufs 8er umportieren und bekomme da Fehlermeldungen ohne Ende :(

Ich dachte vielleicht weis hier einer Rat wäre wirklich super.

Also zum Beispiel hier irgendwie hab ich das gefühl das das Studio 2005 keine Typedefs mag.

z.B

Code:
DLLEXPORT(DWORD) OpenInterface()
{}

bei der Funktion bringt er folgende Fehlermeldung

error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

obwohl ich den Typ mittels define ja bestimmt hab..


Code:
#define DLLEXPORT(type) extern "C" __declspec(dllexport)


geht das im 2005 net mehr oder mach ich was anderes Falsch ?

oder hier auch wieder was mit typedef

ich habe eine Fkt die ich aufrufen möchte der Aufruf sieht so aus.

Code:
m_pCHostSetup->SetIPAddress(nItemIndex,(const char*)&_IPAddress,&DEFAULT_SUBNET, (const char*)&_Gateway, (const char*)&_AdapterName);

der Prototyp der Funktion sieht so aus

Code:
BOOL CHostSetup::SetIPAddress(DWORD AdapterIndex, LPCSTR sIPAddress,LPCSTR sSubnetMask,LPCSTR sGateway, LPCSTR AdapterName)

un jetzt bringt er eben die Fehlermeldung das er ein const char nicht in ein LPCSTR converten kann

cannot convert parameter 3 from 'const char (*)[14]' to 'LPCSTR'


obwohl ich mittels typedef ja den Alias zugewiseen hab

Code:
typedef CONST CHAR *LPCSTR, *PCSTR;

im 6er Studio hat das alles hervorragend funktioniert weis vielleciht einer Rat wieso das im 2005 net mehr geht wäre euch echt für jeden Tipp dankbar.

Kommen vielleicht noch neue Fehler dazu aber die kommen am meisten vor.


Danke im vorraus

greetz sand13r
 
Hi,

zur ersten Fehlermeldung kann ich nichts sagen, aber die zweite Meldung deutet auf ein Unicode-Problem hin.
In VS 2005 ist per default Unicode eingestellt. Dann wird aus LPCSTR ein LPWSTR. Und das ist nicht kompatibel mit char. Entweder du änderst die Projekteinstellungen auf Multibyte oder du nutzt statt char tchar.

Mfg

langer
 
Zuletzt bearbeitet:
Ah super danke schön werd i gleich mal schaun. weil i bekomm jetzt noch ne komishce exception wenn ich debugen will.. immer an der stelle

Code:
ATLASSERT( nLength <= GetData()->nAllocLength );

das is eine zeile von der Funktion SetLength() in der headerdatei atlsimpstr.h
darin bekomm ich jetzt immer ne exception.. und weis net wieso.. mal schaun ob des an dem unicode liegt.


Danke nochmal

gruß

sand13r

PS. wo sag ich dem 2005 Studio welche sdk der hernemhen soll oder weis der des automatisch o_O?
 
Hi,

das sdk wird automatisch installiert.
Und die Exception sagt, dass dir Stringlänge größer als der allokierte Bereich ist, wohl auch Unicode-Problem

Mfg

langer
 
Zurück