powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Запуск команды из .dll написанной на C в программе на VB.net
7 сообщений из 7, страница 1 из 1
Запуск команды из .dll написанной на C в программе на VB.net
    #38627922
nuspace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Я столкнулась со следующей проблемой. Есть .dll файл (написанный, скорей всего на С), содержащий команды, которые я запускаю из программы на VB.net.

Собственно вопрос. На С команда выглядит так :

Код: c#
1.
DWStatus DWOpenDataFile (char* file_name, DWFileInfo* file_info)



DWFileInfo включает в себя double sample_rate, double start_store_time, double duration (насколько я понимаю - эта функция возвращает свойства открываемого файла).

Я пытаюсь запустить команду следующим способом (уверена, что типы параметров указаны не совсем верно):

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Private Declare Function DWOpenDataFile Lib "D:\DWDataReaderLib_stdcall" Alias "_DWOpenDataFile@8" (ByVal file_name As String,
                                                                                                    ByVal sample_rate As Double,
                                                                                                    ByVal start_store_time As Double,
                                                                                                    ByVal duration As Double)

 Public Function OpenD7DFile(ByVal file_name As String,
                             ByVal sample_rate As Double,
                             ByVal start_store_time As Double,
                             ByVal duration As Double) As Object
        OpenDataFile = DWOpenDataFile(file_name)
        Dim OpenDataFile As Integer
        file_name = "C:\test.d7d"
 End Function
        


что приводит к ошибке pInvokeStackImbalance. Или в данном случае требует объявить аргументы для sample_rate, duration, start_store_time. Подскажите, что я делаю не так? Как правильно задать параметры ? Буду благодарна и за направление, в котором копать.
...
Рейтинг: 0 / 0
Запуск команды из .dll написанной на C в программе на VB.net
    #38627975
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nuspace(уверена, что типы параметров указаны не совсем верно):
совсем неверно

второй параметр - адрес структуры, передавать структуру - по ссылке
...
Рейтинг: 0 / 0
Запуск команды из .dll написанной на C в программе на VB.net
    #38627989
nuspace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропил,

Спасибо за совет.
Если не затруднит - можно ли какой-то пример, как это работает в VB.net?
...
Рейтинг: 0 / 0
Запуск команды из .dll написанной на C в программе на VB.net
    #38628068
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nuspace,

если бы C-шные заголовочные файлы (*.h) были бы здесь - было бы удобнее


а примеры(из WinAPI) можно смотреть на сайте http://pinvoke.net/
...
Рейтинг: 0 / 0
Запуск команды из .dll написанной на C в программе на VB.net
    #38628094
nuspace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропил,

в приложении файлы, что предоставила компания. За ссылку спасибо, займусь изучением.
...
Рейтинг: 0 / 0
Запуск команды из .dll написанной на C в программе на VB.net
    #38628115
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nuspace,

используйте лучше синтаксис с атрибутом DllImportAttribute, чем declare - что из совместимости со старым бейсиком,
большинство примеров, что найдёте - будет с атрибутом
...
Рейтинг: 0 / 0
Запуск команды из .dll написанной на C в программе на VB.net
    #38628501
nuspace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропил,

Спасибо за совет, попробую так.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Запуск команды из .dll написанной на C в программе на VB.net
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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