powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Подключение библиотеки .dll на C++ в проект C#
25 сообщений из 42, страница 1 из 2
Подключение библиотеки .dll на C++ в проект C#
    #38873018
dimasikus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. у меня возникла проблема с подключением библиотеки c++ в c#, через referens пробовал, не получается. Тогда подключил через DllIport, но возникла проблема, у функций свои типы данных, прописанные в заголовочном файле (#define). Проблема в том, что я не знаю как их перевести в C#. Прилагаю архив в котором собственно и dll и заголовочный файл.
...
Рейтинг: 0 / 0
Подключение библиотеки .dll на C++ в проект C#
    #38873020
ndbn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
#ifndef _u8
#define _u8  UINT8
#endif
#ifndef _s8
#define _s8  INT8
#endif
#ifndef _u16
#define _u16 UINT16
#endif
#ifndef _s16
#define _s16 INT16
#endif
#ifndef _u32
#define _u32 ULONG32
#endif
#ifndef _s32
#define _s32 INT32
#endif



http://stackoverflow.com/questions/24947123/does-c-sharp-have-int8-and-uint8
...
Рейтинг: 0 / 0
Подключение библиотеки .dll на C++ в проект C#
    #38873040
dimasikus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как я понял надо просто вместо _u8 писать соответствующий ему тип C#. ещё вопрос у процедур есть возвращаемое значение которое соответствует
Код: plaintext
1.
#define CI_BRD_NUMS      8

, насколько я понимаю в C# - это перечисление
...
Рейтинг: 0 / 0
Подключение библиотеки .dll на C++ в проект C#
    #38873090
ndbn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimasikus, насколько я понимаю в C# - это перечисление
Константа вроде
Код: c#
1.
const CI_BRD_NUMS x = 8;
...
Рейтинг: 0 / 0
Подключение библиотеки .dll на C++ в проект C#
    #38873093
ndbn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е.
Код: c#
1.
const CI_BRD_NUMS = 8;
...
Рейтинг: 0 / 0
Подключение библиотеки .dll на C++ в проект C#
    #38873103
dimasikus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ещё вопрос про DllImport. у меня подключается много функций, значит для каждой функции писать DllImport?
...
Рейтинг: 0 / 0
Подключение библиотеки .dll на C++ в проект C#
    #38873105
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimasikusПроблема в том, что я не знаю как их перевести в C#
int'ы не проблема, структуры типа canboard_t больше трудностей вызовут
...
Рейтинг: 0 / 0
Подключение библиотеки .dll на C++ в проект C#
    #38873132
dimasikus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ИзопропилdimasikusПроблема в том, что я не знаю как их перевести в C#
int'ы не проблема, структуры типа canboard_t больше трудностей вызовут
Я думал такие же структуры объявить, получается так не прокатит? подскажите как это можно сделать.
...
Рейтинг: 0 / 0
Подключение библиотеки .dll на C++ в проект C#
    #38873149
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimasikusподскажите как это можно сделать.
https://msdn.microsoft.com/en-us/library/s9ts558h(v=vs.110).aspx
...
Рейтинг: 0 / 0
Подключение библиотеки .dll на C++ в проект C#
    #38873180
dimasikus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я прочитал, но не могу понять про "типы перечислений". для целочисленных какие типы?
...
Рейтинг: 0 / 0
Подключение библиотеки .dll на C++ в проект C#
    #38873203
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimasikus,

перечисление это просто набор именованных констант
...
Рейтинг: 0 / 0
Подключение библиотеки .dll на C++ в проект C#
    #38878407
dimasikus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я вызываю функцию из dll, у меня вылетает ошибка "System.BadImageFormatException: Была сделана попытка загрузить программу, имеющую неверный формат."
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
 [DllImport("chai.dll", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)]
        public static extern short CiInit();
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            try
            {                
                CiInit();
            }
            catch (Exception g)
            {
                MessageBox.Show(g.ToString());
            }

        }


сама dll находится в папке с exe. Смотрел в MSDN, так понял что он не может связать управляемый код с неуправляемым. Подскажите ка исправить?
...
Рейтинг: 0 / 0
Подключение библиотеки .dll на C++ в проект C#
    #38878684
dimasikus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ау, кто-нибудь ответит?
...
Рейтинг: 0 / 0
Подключение библиотеки .dll на C++ в проект C#
    #38878687
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dll 32 битная?

тогда и для c# укажи компиляцию в 32 бита
...
Рейтинг: 0 / 0
Подключение библиотеки .dll на C++ в проект C#
    #38878697
dimasikus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DLL 32 битная, написана на MS Visual C++ 2010 Express Edition. Библиотека предназначена для взаимодействия по CAN, на сайте разработчика она есть http://can.marathon.ru/page/prog/chai. А про разрядность проект, у меня раньше в студии можно было выбрать x32 и x64 а теперь тока AnyCPU. ОС Windows 8.1 x64. Читал на MSDN про AnyCPU - это как бы и для 32 и 64.
...
Рейтинг: 0 / 0
Подключение библиотеки .dll на C++ в проект C#
    #38878719
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
13.02.2015 8:44, dimasikus пишет:

> DLL 32 битная

> AnyCPU

> Windows 8.1 x64

Неужели до сих непонятно, в чём проблема ;)?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Подключение библиотеки .dll на C++ в проект C#
    #38878750
dimasikus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нет
...
Рейтинг: 0 / 0
Подключение библиотеки .dll на C++ в проект C#
    #38879073
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimasikus,

Собирай проект под конкретную платформу, а именно x86, а не AnyCPU или x64. Написали же выше, что библиотека 32-битная
...
Рейтинг: 0 / 0
Подключение библиотеки .dll на C++ в проект C#
    #38879674
dimasikus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я же писал что мне студия не даёт выбрать платформу
dimasikusу меня раньше в студии можно было выбрать x32 и x64 а теперь тока AnyCPU.
т.е. при выборе доступно тока AnyCPU и Диспетчер конфигураций. У меня ещё стоит VirtualBox, Windows XP SP3 x86 так вот там в студии тоже также при выборе доступно тока AnyCPU и Диспетчер конфигураций.
А как влияет разрядность? Я знаю что она влияет на адресуемость памяти т.е. в 32 адрес состоит из 32 бит это 4Гб, а в 64 из 64 бит это намного больше чем 4Гб. Я думаю что приложения для х32 могут работать на х64, а вот приложения для х64 на х32 не будут работать.
...
Рейтинг: 0 / 0
Подключение библиотеки .dll на C++ в проект C#
    #38879688
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimasikusЯ думаю что приложения для х32 могут работать на х64, а вот приложения для х64 на х32 не будут работать.

в одном процессе 32 и 64 код одновременно работать не могут
...
Рейтинг: 0 / 0
Подключение библиотеки .dll на C++ в проект C#
    #38879705
dimasikus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Понятно
...
Рейтинг: 0 / 0
Подключение библиотеки .dll на C++ в проект C#
    #38879708
dimasikus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
просто у меня раньше проблем не было связанных с разрядностью вот и не разбирался.
...
Рейтинг: 0 / 0
Подключение библиотеки .dll на C++ в проект C#
    #38879723
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimasikus,

В Express версии вроде как нельзя было выбрать платформу. Но если собирать из под командной строки - всё нормально, ограничения только в самой студии редакции Express. У вас какая?
...
Рейтинг: 0 / 0
Подключение библиотеки .dll на C++ в проект C#
    #38879768
dimasikus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня MS Visual Studio 2013 Ultimate с обновлением 3
...
Рейтинг: 0 / 0
Подключение библиотеки .dll на C++ в проект C#
    #38879835
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimasikus,

VS 2013 Community
...
Рейтинг: 0 / 0
25 сообщений из 42, страница 1 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Подключение библиотеки .dll на C++ в проект C#
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]