Злополучный Рихтер
От: lamers-forever  
Дата: 19.08.03 16:11
Оценка:
Такс! Буду благодарен, если вы не пошлете меня в поиск! Так как я там уже все перерыл (и не только там, но и в гугле, яндехе и т.п.)
Вопрос уже несколько раз задавался на форуме, но внятного (понятного для меня) ответа там не было.
Вопрос: как откомпилить эти фиговы примеры из известного труда Рихтера (4-ое издание).
Выдает такую вот ошибку (пример из 4-ой главы):
_______________________________________________
Compiling...
ProcessInfo.cpp
You are not using the latest Platform SDK header/library
files. This may prevent the project from building correctly.
d:\cppproects\study\richter\cmnhdr.h(212) : error C2065: 'GetWindowLongPtr' : undeclared identifier
d:\cppproects\study\richter\cmnhdr.h(212) : error C2065: 'GWLP_HINSTANCE' : undeclared identifier
D:\CppProects\STUDY\Richter\04-ProcessInfo\ProcessInfo.cpp(20) : error C2061: syntax error : identifier 'PCTSTR'
D:\CppProects\STUDY\Richter\04-ProcessInfo\ProcessInfo.cpp(23) : error C2065: 'pszFormat' : undeclared identifier
D:\CppProects\STUDY\Richter\04-ProcessInfo\ProcessInfo.cpp(49) : error C2065: 'PCTSTR' : undeclared identifier
D:\CppProects\STUDY\Richter\04-ProcessInfo\ProcessInfo.cpp(49) : error C2146: syntax error : missing ';' before identifier 'pszExeFile'
D:\CppProects\STUDY\Richter\04-ProcessInfo\ProcessInfo.cpp(49) : error C2065: 'pszExeFile' : undeclared identifier
D:\CppProects\STUDY\Richter\04-ProcessInfo\ProcessInfo.cpp(49) : error C2440: '=' : cannot convert from 'char *' to 'int'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
D:\CppProects\STUDY\Richter\04-ProcessInfo\ProcessInfo.cpp(50) : error C2440: '=' : cannot convert from 'char [260]' to 'int'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
D:\CppProects\STUDY\Richter\04-ProcessInfo\ProcessInfo.cpp(164) : error C2660: 'AddText' : function does not take 3 parameters
D:\CppProects\STUDY\Richter\04-ProcessInfo\ProcessInfo.cpp(169) : error C2660: 'AddText' : function does not take 7 parameters
D:\CppProects\STUDY\Richter\04-ProcessInfo\ProcessInfo.cpp(181) : error C2660: 'AddText' : function does not take 7 parameters
D:\CppProects\STUDY\Richter\04-ProcessInfo\ProcessInfo.cpp(188) : error C2660: 'AddText' : function does not take 2 parameters
D:\CppProects\STUDY\Richter\04-ProcessInfo\ProcessInfo.cpp(190) : error C2660: 'AddText' : function does not take 3 parameters
D:\CppProects\STUDY\Richter\04-ProcessInfo\ProcessInfo.cpp(197) : error C2660: 'AddText' : function does not take 7 parameters
D:\CppProects\STUDY\Richter\04-ProcessInfo\ProcessInfo.cpp(200) : error C2660: 'AddText' : function does not take 6 parameters
D:\CppProects\STUDY\Richter\04-ProcessInfo\ProcessInfo.cpp(207) : error C2660: 'AddText' : function does not take 2 parameters
D:\CppProects\STUDY\Richter\04-ProcessInfo\ProcessInfo.cpp(218) : error C2660: 'AddText' : function does not take 4 parameters
D:\CppProects\STUDY\Richter\04-ProcessInfo\ProcessInfo.cpp(227) : error C2061: syntax error : identifier 'PCTSTR'
D:\CppProects\STUDY\Richter\04-ProcessInfo\ProcessInfo.cpp(234) : error C2065: 'pszModulePath' : undeclared identifier
D:\CppProects\STUDY\Richter\04-ProcessInfo\ProcessInfo.cpp(235) : error C2660: 'AddText' : function does not take 2 parameters
D:\CppProects\STUDY\Richter\04-ProcessInfo\ProcessInfo.cpp(236) : error C2660: 'AddText' : function does not take 2 parameters
D:\CppProects\STUDY\Richter\04-ProcessInfo\ProcessInfo.cpp(244) : error C2660: 'AddText' : function does not take 5 parameters
D:\CppProects\STUDY\Richter\04-ProcessInfo\ProcessInfo.cpp(330) : error C2660: 'ShowModuleInfo' : function does not take 2 parameters
D:\CppProects\STUDY\Richter\04-ProcessInfo\ProcessInfo.cpp(376) : error C2664: 'DialogBoxParamA' : cannot convert parameter 4 from 'long (struct HWND__ *,unsigned int,unsigned int,long)' to 'int (__stdcall *)(struct HWND__ *,unsigned int,unsigned in
t,long)'
None of the functions with this name in scope match the target type
Error executing cl.exe.

04 ProcessInfo.exe — 25 error(s), 0 warning(s)
_______________________________________________

Здесь, на форуме, в аналогичных топиках советовали поставить свежий SDK (новые версии библиотек и заголовочных файлов, как я понимаю), точнее SDK Core. Так вот! Слил я с майкростофта 320 метров этого СДК, поставил (и SDK Core и PSDK-x86, остальное не ставил, так как по-моему все оставшееся там — не по теме — либо для ИА64/Опертон, либо для инета, либо для мультимедиа).
Перезагрузился, на всякий случай, и... ОБЛОМ! Все тоже самое, все теже ошибки!
В МСДН ничего вразумительного (понятного для меня) по этому поводу не нашел.

ЧЕ ДЕЛАТЬ????
Может какие переменные окружения дописать надо, может в настройках VC что поменять — ПОДСКАЖИТЕ, пожалуйста.

Система: WinXP eng + SP1a, VC++6.0 + SP5, SDK последний с майкрософта (за февраль 2003), его я ставил после установки VC++ (может в этом дело, хотя наверняка проблема решается и без переустановки)???

Буду несказанно благодарен, если поможете!
Спасибо, что дочитали до конца!
Re: Злополучный Рихтер
От: EM Великобритания  
Дата: 19.08.03 16:48
Оценка: 3 (1)
LF>Compiling...
LF>ProcessInfo.cpp
LF>You are not using the latest Platform SDK header/library 
LF>files. This may prevent the project from building correctly.


Проверь, у тебя в настройках VC путь к include — никам Platform SDK должен стоять раньше чем к include — никам Visual Studio
Опыт — это такая вещь, которая появляется сразу после того, как была нужна...
Re[2]: Злополучный Рихтер
От: lamers-forever  
Дата: 19.08.03 16:57
Оценка:
Здраствуйте!
Спасибо огромное — помогло!!!
Re[3]: Злополучный Рихтер
От: EM Великобритания  
Дата: 19.08.03 17:02
Оценка: 3 (1)
Здравствуйте, lamers-forever, Вы писали:

LF>Здраствуйте!
LF>Спасибо огромное - помогло!!!
LF> :)


В узком кругу читателей-писателей rsdn спасибо принято выражать интенсивным тыканьем в кнопки с оценками
Опыт — это такая вещь, которая появляется сразу после того, как была нужна...
Re[4]: Злополучный Рихтер
От: lamers-forever  
Дата: 19.08.03 17:57
Оценка:
EM>В узком кругу читателей-писателей rsdn спасибо принято выражать интенсивным тыканьем в кнопки с оценками
Хорошо! Исправлюсь!
З.Ы. Только кому это нужно и зачем??? — этот вопрос ответа/флейма не требует.
Re: Злополучный Рихтер
От: Игорь Россия  
Дата: 19.08.03 18:19
Оценка:
Здравствуйте, lamers-forever, Вы писали:

У тебя получится его откомпилировать если заменишь PCTSTR на LPCTSTR.
Вместо вызова GetWindowLongPtr вызовешь GetWindowLong(hwnd,GWL_HINSTANCE);
И заменишь, тип возвращаемого значения диалоговой функции Dlg_Proc c INT_PTR на BOOL.
Sincerely yours,
Igor!
Re[3]: Злополучный Рихтер
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 20.08.03 03:57
Оценка:
Здравствуйте, lamers-forever, Вы писали:

LF>Спасибо огромное — помогло!!!


путь к либам PSDK — \Program Files\Microsoft SDK\lib тоже не забудь на самый верх поставить
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.