Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Использование функции из DLL-библиотеки. Проблемы. Добавлено: 29.02.08 19:45  

Автор вопроса:  Любитель*
Отлаживаю программу в среде разработки Microsoft Visual Basic.NET, возникает проблема:
В ходе исполнения в Отладчике при вызове функции из DLL-библиотеки получаю диагностику
в окне Microsoft Development Environment:

-------------------------------
Необработанное исключение типа "System.NullReferenceException" произошло в Modul.exe.

Дополнительные сведения: в экземпляре объекта не задана ссылка на объект.
-------------------------------

Моdul – имя отлаживаемой программы.

Отладчик "подсвечивает" строку с вызовом функции из библиотеки:
        res = ReadIEEE32(8, 0, "rEAd", val, tm, 0)

Переменные объявлены выше в модуле:
Dim res As Long
        Dim val As Single

Функция из DLL-библиотеки объявлена в модуле:
    Private Declare Function ReadIEEE32 Lib "owen_io" _
(ByVal adr As Long, ByVal adr_type As Long, _
ByVal command As String, ByRef res As Single, _
ByRef time As Long, ByVal Index As Integer) As Long



В Help'e на библиотеку функция описана следующим образом:
для C++
int ReadIEEE32(DWORD adr,DWORD adr_type,char *command,float &value,int &time,int index);
 
для VB
Function ReadIEEE32(ByVal adr As Long, ByVal adr_type As Long, ByVal command As String, res As Single, time As Long, ByVal Index As Integer) As Long




Подскажите, что делать ?



Ответить

  Ответы Всего ответов: 5  

Номер ответа: 1
Автор ответа:
 Viper



ICQ: 249094859 

Вопросов: 0
Ответов: 310
 Профиль | | #1 Добавлено: 01.03.08 07:34
Как минимум заменить Long на Integer

Ответить

Номер ответа: 2
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #2
Добавлено: 01.03.08 11:00
Как минимум заменить Long на Integer

С чего бы? В Си int - 4 байта. В бейсике Long - 4 байта, а Integer - 2.

Declare Function ReadIEEE32 Lib "owen_io" (ByVal adr As Long, ByVal adr_type As Long, ByVal command As String, ByRef value As Single, ByRef time As Long, ByVal index As Long) As Long

Ответить

Номер ответа: 3
Автор ответа:
 Skywalker



ICQ: 300-70-6пятьЪ 

Вопросов: 62
Ответов: 545
 Web-сайт: iSkywalker.ru
 Профиль | | #3
Добавлено: 01.03.08 11:07
в бейсике то можь и да, а вот в vb.net учи матчасть

Ответить

Номер ответа: 4
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #4
Добавлено: 01.03.08 11:30
Сорри, не спалил. Но, имхо, если и то и то 4 байта... или там знаковое/беззнаковое?

Ответить

Номер ответа: 5
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #5 Добавлено: 03.03.08 09:42
Long меняешь на Integer (4 байта)
Integer на Short (2 байта)

Учить матчасть.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам