webForumDet fria alternativet

ms visual studio 6 & w2k

11 svar · 218 visningar · startad av PeW

PeWMedlem sedan juni 20006 839 inlägg
#1

w2k + MSVC

Nån mer än jag som inte lyckats få till en sådan variant? Kompilering av befintliga directX-källkoder (funkade i BC5.02, men är gjorda för MSVC) blev rena katastrofen med ca 50 errors och enligt readme filen skall det till en hel del special arrangemang för att få till det under NT alternativt att man special anpassar koden.

URK!

Har installerat sp5 och har testat med "NT-symbols" utan någon som helst skillnad. "ATL_MIN_CRT" som beskrivs i readme finns inte heller med i preprocessorns alternativ...

Nåt bra råd(?), eller ska skiten ut igen? Jag byter inte OS utan isf hellre tillbax till BC5.02 om det inte går att fixa ENKELT.

------------------
Ancilla, face mea laganum!

developerMedlem sedan aug. 2001453 inlägg
#2

Ditt inlägg säger faktiskt ingenting om vad som går fel, således lär ingen kunna hjälpa dig.

PeWMedlem sedan juni 20006 839 inlägg
#3

Nähäpp...

Men:

Win32 progg ( inget MFC utan ren API ) genererar:

"Många!" typecasting error, unresolved symbols (speciellt mot _main) m.m.. koden fungerar kalas i Borland. Testade då ren kod från en MSVC konstellation med samma nedslående resultat. Inställningarna i "options" har ingen betydelse, det blir samma resultat ändå.

Uppgraderade då med sp5 utan ändring. Ominstallerade allt och möttes av ett felmeddelande som upplyste mig om att installationen inte gick smärtfritt och således följde jag de anvisningar som fanns i readmevc om just detta fel. (Unresolved symbols _main...install NT symbols). Men det hjälpte ej. Vid en vidare koll föreslog de konvertering av koden, vilket verkar totalt puckat, inte minst eftersom koden redan är optimerad för MSVC och det verkade ( i readme filen) som om många undantag bör göras om man kör MSVC + NT vilket isf kommer skapa en massa extra jobb då är frågan om att dela projekt mellan andra workstations.

Så det jag är ute efter är om någon mer haft dessa problem och isf hur de löstes.
(MSDN's alla tips & trix ger mig bara huvudvärk, har de betalt i $ per ord? )
Jag har i nuläget tagit bort studion och återinstallerat BC5.02 vilket går som klockan.

Men eftersom jag kommer att jobba en hel del med projekt som involverar MSVC är det självfallet intressant att sparka igång skiten. Fast utan onödigt merarbete i form av omkonverteringar...

r
Det jag fått fram hitills är att MSVC inte gillar NT:ns .dll filer och det behövs typ ett "filter" för att det ska fungera. Märkligt, tycker jag då de är moderna MS produkter båda två... (eller det kanske inte är så märkligt ändå ;) )
------------------
Ancilla, face mea laganum!

[Redigerat av PeW den 28 aug 2001]

PeWMedlem sedan juni 20006 839 inlägg
#4

OK för att konkretisera det lite mera så får jag följande error meddelande vid installationen:

Setup has installed an icon in the Microsoft Visual 6 C++ tools programgroup, that will allow you to install a subset of the windows NT system symbols files from your CD-rom. If the symbols are not installed the Visual C++ debugger is not always able to determine the context of called functions.

For easier application debugging, its strongly recommended that you install these files.

See the Visual C++ readme for more information.

Vidare när jag försöker installera dessa filer kommer det efter en stund detta error msg:

Not all symbolfiles files are succesfully installed on your system.

Har testat det mesta i uppdateringsväg, stoppat diverse processer m.m... ingen skillnad. Samma skiva funkar utan anm i w98 men i den maskinen jag vill ha installationen är det som sagt w2k NTFS.

Så ... förslag någon ???

------------------
Ancilla, face mea laganum!

developerMedlem sedan aug. 2001453 inlägg
#5

Du får "Not all symbolfiles files are succesfully installed on your system." eftersom du försöker installera symbolerna från MSVC-skivan på ett OS som har uppgraderats. Symbolerna är kopplade till OS:ets binärer (typ kernel32.dll osv) som ju ofta ändras vid installation av service packs och så. MSVCs symboler är väl från 1800-talet eller så... Har du Windows 2000 SP2 finns bättre symboler på http://www.microsoft.com/windows2000/downloads/servicepacks/sp2/debug/default.asp

Du _behöver_ inte symbolerna för att bygga program (så det är inte det som är ditt problem), men de underlättar vid debuggning.

Får du problem om du med wizarden skapar ett "Win32 console" projekt och har en enkel main-funktion i? (Observera att om du skapar en "Win32 app" ska du ha WinMain istället för main. Annars får du länkfel). Se http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnw98bk/html/thewinmainprocedure.asp

Ett tips är att alltid bygga på warning level 4 och slå på "warnings as errors". Det gör att koden måste skrivas mer strikt, och det underlättar portabiliteten om exempelvis Borlands kompilator är mer tolerant än Microsofts. Det gör även att man tidigare kan upptäcka potentiella buggar. Typcasting errors beror i allmänhet på slarvigt skriven kod, att alltid bygga på warning level 4 gör att man slipper sånt.

Har du sett till att referera alla libraries du använder i koden? Du skriver att du använder Win32 APIer, då måste du ha referenser till dessa i project settings så de länkas med, annars blir det förstås länkfel.

Jag förstår inte alls vad du menar med "MSVC inte gillar NT:ns .dll filer och det behövs typ ett "filter" för att det ska fungera". Det är fel.

PeWMedlem sedan juni 20006 839 inlägg
#6

Jag förstår inte alls vad du menar med "MSVC inte gillar NT:ns .dll filer och det behövs typ ett "filter" för att det ska fungera". Det är fel.

Ok, men det är vad jag fick fram i både install.htm och readmevc.htm + att mitt intryck av MSVC inte blev en höjdare precis när det tog stopp så här. Rörigt värre ;)

I övrigt ska jag testa det du föreslog. Men koden som jag kompilerat är skriven för msvc och det har naturligtvis både:
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
LRESULT CALLBACK WindowProc
och<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hprevinstance, LPSTR lpcmdline, int ncmdshow)

Har du sett till att referera alla libraries du använder i koden? Du skriver att du använder Win32 APIer, då måste du ha referenser till dessa i project settings så de länkas med, annars blir det förstås länkfel.

Japp det har jag gjort, utan resultat.

Som sagt. Den kod jag testat med är mot WinAPI och utvecklad i MSVC och fungerar utmärkt i samma progg men på win 98. Borde inte alls vara nåt problem mao. Att det sen uppdagades att det blev errors vid installationen får mig att tro att det är knas med denna MSVC6 ihop med mitt w2k sp2. Vid kompileringen har jag fixat med lite exiclipt typecasting så det blev 0 errors men länkningen blir fortfarande bara skit.

Men jag testar bums med nya symbols + error level 4 så får vi se.

Tack för svar :)

------------------
Ancilla, face mea laganum!

PeWMedlem sedan juni 20006 839 inlägg
#7

Ha ha ha:
http://www.microsoft.com/windows2000/downloads/servicepacks/sp2/debug/default.asp

71 MB Download File

Jag sitter på 56k modem ;)

Så det lär anstå isf.

------------------
Ancilla, face mea laganum!

[Redigerat av PeW den 29 aug 2001]

developerMedlem sedan aug. 2001453 inlägg
#8

56 kbps, Skriv om några dar och berätta hur det gick!

Allvarligt... Observera att installera korrekta symboler INTE gör någon skillnad för kompilering. Dessa används BARA när du debuggar. Så det finns ingen anledning för dig att tanka hem dessa för att lösa det här problemet.

Det skulle nog hjälpa om du kopierade in länk-felen från Build-rutan i MSVC samt nån kodsnutt där "länkfels-funktionerna" anropas.

Hur skapade du problem-projektet? Skulle det hjälpa att skapa en ny projekt-fil och lägga till alla dina filer?

Vilka preprocessor defines finns i ditt projekt? Titta i project-settings, fliken c/c++, välj category "General".

Vilket run-time kör du? Titta i project-settings, fliken c/c++, välj category "Code generation".

Har du nån konstig calling convention vald? Det ska vara __cdecl, titta i project-settings, fliken c/c++, välj category "Code generation".

Vilka libar länkar du med? Titta i project-settings, fliken Link, välj category "General". Lista "Object/Library modules".

Jag har svårt att tänka mig att det skulle vara skillnad på att bygga för w98 och 2000 även om programmen fungerar olika i de olika OS:en.

PeWMedlem sedan juni 20006 839 inlägg
#9

Det är inte koden eller projekten det är fel på utan snarare kompilatorn... men för att besvara dina frågor:

Det skulle nog hjälpa om du kopierade in länk-felen från Build-rutan i MSVC samt nån kodsnutt där "länkfels-funktionerna" anropas.

He he, en sån innehåller halva den här tråden i storlek ... men den säger samma sak på varje rad.
LINK 2001: Unresolved symbols bla bla bla...

Hur skapade du problem-projektet? Skulle det hjälpa att skapa en ny projekt-fil och lägga till alla dina filer?

För det första är det inte bara ett problemprojekt utan jag har testat med ett tiotal projekt som är redan klara och gjorda i ett MSVC6. Jag har även testat att skapa nytt projekt och inkluderat allt på nytt.

Vilka preprocessor defines finns i ditt projekt? Titta i project-settings, fliken c/c++, välj category "General".

Det var default och det fungerade inte.

Vilket run-time kör du? Titta i project-settings, fliken c/c++, välj category "Code generation".

Som ovan.

Har du nån konstig calling convention vald? Det ska vara __cdecl, titta i project-settings, fliken c/c++, välj category "Code generation".

Som ovan

Vilka libar länkar du med? Titta i project-settings, fliken Link, välj category "General". Lista "Object/Library modules".

Visst. Jag har även lagt till de libar som var externa.

Jag har svårt att tänka mig att det skulle vara skillnad på att bygga för w98 och 2000 även om programmen fungerar olika i de olika OS:en.

Det tänkte jag med, men länkningen skriker efter NT-symbols och i readmevc står det lite om detta. Bla att konvertera viss kod... (så var det med ANSI..)

Nu tycker jag att det hela är lite märkligt och anledningen till att jag slängde in frågan här är den att det verkar som kompabilitetsproblem - det fungerade som sagt utmärkt i w98 från samma CD. Det kan ju vara nåt skit med mitt w2k... frågan är isf vad(?) jag har inga andra problem med maskinen förutom att IIS servern dyker titt som tätt när jag kör PHP (den slog jag förresten av när jag installerade MSVC).

------------------
Ancilla, face mea laganum!

[Redigerat av PeW den 30 aug 2001]

developerMedlem sedan aug. 2001453 inlägg
#10

Det finns inte en sportslig att det är symbol-filerna som är problemet. Läs gärna på vad symboler är så förstår du.

Så vad menar du med "länkningen skriker efter NT-symbols"? Ge ett exempel.

Vidare, du skriver att du får massor av LNK2001-fel. Ge nåt exempel så kanske det går att hjälpa till. Du gör verkligen ditt bästa för att gömma ditt problem, jag hjälper dig gärna - men informationen du ger räcker inte. Om du skapar ett tomt main-projekt, ge exempel på några av varningarna. Annars får du klara dig utan hjälp.

PeWMedlem sedan juni 20006 839 inlägg
#11

Gömma problemet?

A: Jag fick meddelande under installationen att installationen inte lyckats.

B: Vid provkörning uppstår diverse error som inte borde uppstå.

C: I en win98 burk händer inget av ovanstående med samma cdrom och samma källkod.

Vad ska jag annat tro än att grundfelet ligger vid A?

Nåväl, det genomgående felmeddelandet lyder:

error LNK2001: unresolved external symbol _main

Det blir exakt samma sak när jag låter MSVC skapa projekten åt mig (även tomma sådana). Nu kanske inte felmeddelandena i länkningen har med problemet att göra... :q det gör ju ingen skillnad hur f*n jag än justerar in projektet.

Jag har som jag sa tidigare avinstallerat MSVC tills det kommer nån form av lösning. I annat fall får jag väl skicka tillbaka skivan mot en ny.

------------------
Ancilla, face mea laganum!

[Redigerat av PeW den 31 aug 2001]

PeWMedlem sedan juni 20006 839 inlägg
#12

Det löste sig med en annan skiva :)

------------------
Ancilla, face mea laganum!

Genererad på 375 ms · cache AV · v20260730165559-full.f96bc7eb