Ошибка компиляции при создания SQLConnection (VS7)

russish
Дата: 23.08.2005 15:10:58
Ситуация состоит в следующем:
1. Создал Dialog Based Application
2. Преобразовал в managed, поставив Project->Properties Use managed extension: Yes
3. Добавил в References System.Data, System, mscorlib
4. Теперь хочу создать подключние: SqlConnection *conn = new SqlConnection (S"abc");
При компиляции возникает ошибка
error C3828: 'System::Data::SqlClient::SqlConnection': placement arguments not allowed while creating instances of managed classes
В MSDN описана ситуация по этому поводу, не относящаяся к моему случаю
Программирую VS7
Заранее благодарю.
bond007
Дата: 20.03.2007 00:34:09
У меня была та же проблема, только с использованием других класов из библиотеки mscorlib. Ответ нашел случайно в книге Джорджа Шеферда "Программирование на Microsoft Visual C++ .NET"
Там, на самой последней странице раздела, посвященного управляемому С++ написано приблизительно следующее:
"Как вы помните, в отладочной версии библиотека MFC переопределяет опе-
ратор new, чтобы отслеживать использование памяти. А значит, использовать управ-
ляемую версию new нельзя — вы получите ошибку С3828: «Placement arguments
not allowed while creating instances of managed classes» («Нельзя создавать аргументы
при создании экземпляров управляемых классов»). Чтобы избавиться от этой
ошибки, вставьте следующие директивы pragma для временной отмены опреде-
ления оператора new:"
далее код, который работает:

#pragma push_macro("new")
#undef new
MemoryStream * msEncrypt = new MemoryStream();
#pragma pop_macro("new")

и снова цитата:
"Это позволяет задействовать управляемые типы в неуправляемом приложении."
Удачи!
roma_gu
Дата: 24.03.2007 00:37:13
Вопрос: а где в Visual Studio 2005 поставить used managed extension:yes ?
Не могу найти строчку