![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| Plamenk |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 258 Регистрация: 18.2.2003 Репутация: 1 Всего: 3 |
Всем Привет!
У меня есть .ccp и .h файлы класса написанного на обычном С++. И мне надо сделать библиотеку на MC++ с классом оберткой для этого класса. Как это сделать ума не приложу! Пытался использовать класс как private переменную MC++ класса, но компилятор ругается. Заранее Всем Большое СПАСИБО! |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 29 Всего: 186 |
ну.. а почему не выходит? эксепшны? какие?
|
|||
|
||||
| Budda |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 27.9.2004 Где: Украина, Киев Репутация: нет Всего: нет |
Plamenk: сейчас воюю с аналогичной проблемой. Насколько я вник, тебе нужно сделать класс-обёртку, напр. CMyLayer. Обязательно сделать его public и gc. После этого, объяви в нём закрытый объект того типа (класса) (COld), который тебе нужно извлечь из старого проекта. И для каждой нужной функции из COld, которую ты хочешь использовать в C# пиши новую функцию в CMyLayer.
Т.е. допустим есть:
Вроде так нужно делать. Если я не прав, поправьте, плиз, мне тоже будет полезно |
|||
|
||||
| Plamenk |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 258 Регистрация: 18.2.2003 Репутация: 1 Всего: 3 |
2 Budda
Именно так я и сделал, но компилятор вывел мне ошибки следующего типа:
|
|||
|
||||
| Plamenk |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 258 Регистрация: 18.2.2003 Репутация: 1 Всего: 3 |
Такие ошибки выдаются, если у меня код следующего типа:
А если переписать вот так:
То выдаются следующие ошибки:
Это сообщение отредактировал(а) Plamenk - 24.10.2005, 09:44 |
||||||
|
|||||||
| Budda |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 27.9.2004 Где: Украина, Киев Репутация: нет Всего: нет |
Думаю, что лучше юзать конструкцию второго типа.
"__ctor" и ".__dtor" - это конструктор и деструктор. Судя по соощениям у тебя не реализованы конструктр и деструктор класса CScaner. Кроме того, когда я писал свой пост, забыл сказать, что нужно подключить доп. библиотеку MSVCRT.LIB - поищи её в папке, куда ставил .NET, скопируй в папку проекта и добавь в проект. В частности, эта библиотека содержит реализацию метода new для unmanaged классов. Без неё точно работать не будет. Чего не хватает ещё - не знаю. |
|||
|
||||
| Plamenk |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 258 Регистрация: 18.2.2003 Репутация: 1 Всего: 3 |
2 Budda
Спасибо! #pragma comment(lib, "MSVCRT") действительно решила проблему! Но появляется следующий warning: nochkclr.obj : warning LNK4099: PDB 'libc.pdb' was not found with 'C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib\nochkclr.obj' or at 'c:\Documents and Settings\alexy\Мои документы\Visual Studio Projects\SearchEngine\Debug\libc.pdb'; linking object as if no debug info Может быть, у меня какие-то настройки проекта надо изменить? |
|||
|
||||
| Budda |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 27.9.2004 Где: Украина, Киев Репутация: нет Всего: нет |
Plamenk а у меня такое же ворнинг выскакивает. Я закрываю на него глаза, как я понимаю, он не критичен, хотя если кто-то подскажет, что такое libc.pdb и как его сделать , то скажу большое спасибо
|
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 29 Всего: 186 |
ну..pdb - файл для дебаггинга. в нём имена переменных и т.п. просто откомпиль этот libc.dll в режиме debug. если он с сорсами, конечно
|
|||
|
||||
| Budda |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 27.9.2004 Где: Украина, Киев Репутация: нет Всего: нет |
Run-time error, а где взять, этот libc.dll? Он что, в студии где-то лежит (я поискал - нигде нет)? И как его компилить?
|
|||
|
||||
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 22 Всего: 48 |
If you see this warning regarding nochkclr.obj, you can safely ignore it. (с) MSDN -------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 29 Всего: 186 |
а я о чём? он на самом деле нужен тока прогерам мелких - для отладки
|
|||
|
||||
| Plamenk |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 258 Регистрация: 18.2.2003 Репутация: 1 Всего: 3 |
Всем Спасибо!
|
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |