| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > include native c++ headers |
| Автор: Darked 21.5.2006, 19:40 | ||
| Всем доброго времени суток. Проясниет пожалуйста картину, кому не трудно. Как я понимаю, в CLR проектах уже не получится включить h-файлы nativ с++, которые содержат код на обычном С++? Типа такого:
А как же тогда совмешать код? Все заголовки переписывать? |
| Автор: Exception 21.5.2006, 20:07 |
| В С# вообще такой код недопустим |
| Автор: Darked 21.5.2006, 20:24 | ||||
Да вот, переписать одну dll нужно на CLR C++, ну, естественно, куча типов и данных за ней в h-файлах тянется. Пока не нашел как без h-ок переписать ; ) Пытался делать так:
Так начинают такие ошибки валиться: >...\Microsoft Visual Studio 8\VC\include\vadefs.h(89) : error C3862: '__va_start': cannot compile an unmanaged function with /clr:pure or /clr:safe 1> #pragma unmanaged is in effect 1>...\Microsoft Visual Studio 8\VC\include\vadefs.h(90) : error C3862: '__va_arg': cannot compile an unmanaged function with /clr:pure or /clr:safe 1> #pragma unmanaged is in effect 1>...\Microsoft Visual Studio 8\VC\include\vadefs.h(91) : error C3862: '__va_end': cannot compile an unmanaged function with /clr:pure or /clr:safe 1> #pragma unmanaged is in effect Без pragma же придирается к native объявлениям:
|
| Автор: Exception 21.5.2006, 20:30 |
| .NET не связан с С++. Поэтому я не вижу смысла переводить под него не-объектноориентированную библиотеку. А вообще, сделай сборку unsafe или пиши на С++/CLI. |
| Автор: Darked 21.5.2006, 20:58 |
| В смысле unsafe сборку? Так же не понял насчет CLI/C++ ;( . Я токаначинаю с dot net разбираться. Библиотека, кстати, объектно-ориентированная должна получиться ;) . |
| Автор: arilou 22.5.2006, 17:00 |
| Darked, тебе надо переписать под дотнет с минимальными затратами, или есть вариант переосмыслить и переписать? |
| Автор: Darked 22.5.2006, 21:05 | ||
| arilou, мне нужно перенести смысл на dot net. Причем шеф сказал так, улыбаясь: "Заодно причеши код." Так что можно считать, что нужно осмыслить и написать тоже самое на dot net, но все равно некотоые старые наработки потянуться и туда, без этого никак. Пока по - другому не вижу. Тем более используются функции из нашего SDK, поэтому без h-ек никак. [quote=Exception, 21.5.2006, 21:23, post738604]Ты можешь объяснить, зачем тебе дотнет? Он вот к такой бяке:
До этого пока руки не дошли ; ) Как я понимаю CLI никаког отношения к С++ не имеет, это просто инфраструктура. А если писать на .Net, то это и так получается CLR проект. |
| Автор: arilou 23.5.2006, 10:20 |
| Darked, ну тада в зависимости от объема работ. Переписывай на шарпе, а старые наработки можно вызывать из обычных DLL'ок через P/Invoke. |
| Автор: Darked 23.5.2006, 17:19 | ||
Ну, шарп я не знаю, да и пожелания заказчика на С++. А объем работ не маленький... |