Здравствуйте, Чили, Вы писали:
Ч>У меня следующий код:
Ч>CMyObject *pObject;
Ч>...
Ч>long l = (long)pObject;
Ч>Здесь: warning C4312, conversion from 'long' to 'CMyObject *' of greater size
Ч>В Visual Studio 6.0 было без проблем, а в VS.NET — warnig !
Ч>Помогите избавится ! (Мне кажется что то в настройках, но найти не могу)
Начиная с 7-ой студии M$ начали приучать программистов к грядущему приходу Win64, где размер указателей будет не 32 разряда (4 байта), а 64. Поэтому указатель уже не будет помещаться в переменную типа long. Приучают они очень просто — уже сейчас при попытке присвоить указатель в переменную типа long вылетает предупреждение. Эта фича, именуемая "Detect 64-bit Portability Issues", по-умолчанию включена ключом компилятора /Wp64. Если раздражает, можно выключить, но настоятельно не рекомендую — пусть раздражает, по крайней мере будете знать из-за чего ваша программа рухнет на Longhorn`е
Компьютер сделает всё, что вы ему скажете, но это может сильно отличаться от того, что вы имели в виду.