Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 08.11.2009
Сообщений: 53

Подключение нативной dll к проекту

12.05.2012, 02:09. Показов 2764. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создал C# проект консольный. В одном решении с ним создал win32 пустой проект, указал,что проект пустой и его считать dll библиотекой. Далее подключил в параметрах /clr. В С++ проекте создал заголовок и cpp файл в котором реализация файла. каким образом оно работает? у меня синт ошибки выдает. Заранее благодарен.

содержимое хидера
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// C++
public class Foo
{
public:
  void  Do();
}
 
// Managed C++
public ref FooWrapper
{
public:
      FooWrapper()
      {
           m_class = new Foo();
      }
      void Shutdown()
      {
           delete( m_class );
      }
 
      void Do()
      {
           m_class->Do();
      }
private:
      Foo*     m_class;
}
содержимое cpp
C++
1
2
3
4
void Foo:Do()
{
 
}
получаю ругань от компиллятора:
error C2059: syntax error : 'public'
error C2146: syntax error : missing ';' before identifier 'FooWrapper'
error C2470: 'FooWrapper' : looks like a function definition, but there is no parameter list; skipping apparent body
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.05.2012, 02:09
Ответы с готовыми решениями:

C# Подключение dll к проекту
День добрый, прошу помощи ибо у меня уже мозг кипит. Делаю проект по редактору баз данных, использую System.Data.SQLite.dll, но вот...

Подключение dll к проекту на c#
Столкнулся с такой проблемой, при вызове функций описанных в dll, выскакивает такая ошибка An unhandled exception of type...

Подключение к проекту DLL, написанной на Си
Требуется добраться до функций реализованных в dll, написанной на сишке. using System.Runtime.InteropServices; Далее в...

5
 Аватар для sigmov
585 / 372 / 63
Регистрация: 22.07.2009
Сообщений: 875
Записей в блоге: 4
12.05.2012, 14:42
Сразу могу сказать что если Вы компилируете /clr C++ проект, то Вы получаете не нативную dll, а сборку, содержащую неуправляемый код.

А компилятор ругается на public ref FooWrapper
Мне лично тоже непонятно что означает таинственное ref
0
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
12.05.2012, 15:26
В седьмой строке после фигурной скобки нужно поставить ;.

sigmov, в С++ классы передаются по значению, для того что бы передавались по ссылке как в C# приписывают ref.

Основные отличия C# от C++ CLI
0
0 / 0 / 0
Регистрация: 08.11.2009
Сообщений: 53
12.05.2012, 20:09  [ТС]
Поставил ; в 7 строчке, но ничего не получаю. Компилятор выдает
error C2059: syntax error : 'public'
error C2143: syntax error : missing ';' before '{'
error C2447: '{' : missing function header (old-style formal list?)

все равно
0
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
13.05.2012, 00:16
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class Foo
{
public:
    void  Do();
};
 
// Managed C++
public ref class  FooWrapper
{
public:
        FooWrapper()
        {
            m_class = new Foo();
        }
        void Shutdown()
        {
            delete( m_class );
        }
 
        void Do()
        {
            m_class->Do();
        }
private:
        Foo*     m_class;
};
0
0 / 0 / 0
Регистрация: 08.11.2009
Сообщений: 53
14.05.2012, 18:31  [ТС]
Заработало) спасибо
 Комментарий модератора 
Если какой-либо пост на форуме показался вам полезным, нажмите кнопку "Спасибо" внизу самого поста.(Правила п.4.5)


Добавлено через 19 часов 3 минуты
А главного не спросил. Как передавать данные на вход методов?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.05.2012, 18:31
Помогаю со студенческими работами здесь

Подключение неподключающейся dll к проекту.
Здравствуйте, уважаемые программеры. По сути, я начинающий в шарпе (изучил синтиксис, поупражнялся со средствами языка, написал пару...

Подключение dll, написанной на C++ к проекту
Здравствуйте, уважаемые форумчане! Столкнулся с такой проблемой: не могу подключить написанную на C++ dll-ку к проекту на шарпе. Описание...

Подключение неуправляемой DLL к проекту
Доброго времени суток! Помогите пожалуйста. Создаю динамическую dll в VS 2015. В ней только одна функция: extern...

Создание своей dll и подключение её к проекту
Всем привет. Я создал небольшую dll буквально из нескольких функций, скомпелировал, получил .dll файл, но вот при попытке подключить его...

Visual Studio 2010 подключение DLL(C++) к проекту на C#
Добрый день! По манулу создал DLL. Так же создал приложение на C#. Хочется использовать функции из ранее созданной библиотеки. Каким...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru