1 / 1 / 0
Регистрация: 28.08.2012
Сообщений: 38
|
|
1 | |
.NET 4.x Использование Delphi DLL в C#15.04.2014, 22:55. Показов 1450. Ответов 11
Метки нет (Все метки)
У меня была цель привязать программу по Harware ID.
Воспользовавшись этим: http://www.torins.ru/support/b... post_id=92 решил остановиться на Ionworx MachineID. Однако если я делаю так как написано, программа просто закрывалась. Методами проб я обнаружил что она не хочет работать со строками (Функция возвращающая число - работает нормально) Соответсвенно, первый MessageBox показывает значение нормально, а на 2ом крашится. В чем может быть ошибка? Демо библиотека: https://www.dropbox.com/sh/0ny... DcL0xKQjBq
0
|
15.04.2014, 22:55 | |
Ответы с готовыми решениями:
11
Конфликт имён, использование dll Использование DLL, написанной на C++, в C# (указатели) Использование c# dll в C++ builder c COM и без Использование dll, созданной на prolog 5.2 |
16.04.2014, 09:07 | 2 |
Там со строками есть сложности, с выделением памяти.
В каком виде возвращаете строку? Могу посоветовать, в общем, оформить вашу библиотеку в виде COM, для таких дел. Будет проще, там COM памятью сам рулит.
0
|
1 / 1 / 0
Регистрация: 28.08.2012
Сообщений: 38
|
|
16.04.2014, 10:31 [ТС] | 3 |
К сожалению библиотека не моя, и узнать как она устроена я не могу. В дропбоксе я скинул всю папку с ней, там есть пдф в котором она описана.
Если сможешь объяснить как заставить работать или привести пример работающего кода, будет супер
0
|
352 / 331 / 49
Регистрация: 12.12.2011
Сообщений: 563
|
|||||||||||
16.04.2014, 10:58 | 5 | ||||||||||
Вот такая сигнатура у функции
Добавлено через 2 минуты разве что здесь может быть ошибка
1
|
16.04.2014, 11:03 | 6 | |||||
Сейчас посмотрел на скриншот внимательно.
При импорте char* надо указывать тип маршаллинга
Но с выделением памяти тоже могут быть нюансы.
1
|
1 / 1 / 0
Регистрация: 28.08.2012
Сообщений: 38
|
|
16.04.2014, 11:07 [ТС] | 7 |
Даже если я не использую SetHardware , все равно происходит краш. И происходит он из-за строк, так как функции возвращающие числа или bool работают нормально.
Добавлено через 1 минуту Я пытался маршалировать для юникода, не полетело. Судя по докам оно возвращает ANSI строку в формате utf-8
0
|
1 / 1 / 0
Регистрация: 28.08.2012
Сообщений: 38
|
|
16.04.2014, 11:12 [ТС] | 9 |
Никакой ошибки не выскакивает. Просто завершается с кодом не 0( можно увидеть в конце скриншота)
По поводу сторонних ресурсов извиняюсь, куда сохранился скриншота Туда ссылку и дал.
0
|
352 / 331 / 49
Регистрация: 12.12.2011
Сообщений: 563
|
||||||
16.04.2014, 12:10 | 11 | |||||
Сообщение было отмечено DoctorBooooom как решение
Решение
Скачал, попробовал, в общем пользуйтесь
1
|
1 / 1 / 0
Регистрация: 28.08.2012
Сообщений: 38
|
|
16.04.2014, 12:38 [ТС] | 12 |
Спасибо большое. Работает!
Добавлено через 2 минуты А еще вопрос, можно ли эту библиотеку как нибудь грузить не из папки рядом, а из ресурсов например?
0
|
16.04.2014, 12:38 | |
16.04.2014, 12:38 | |
Помогаю со студенческими работами здесь
12
Использование dll в других языках Тонкости использование нативных dll в C# Динамическая загрузка Dll из ресурсов и ее использование Использование метода из dll (C++) с callback аргументами в C# программе? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |