Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / помощь с dllimport / 5 сообщений из 5, страница 1 из 1
20.03.2013, 10:20
    #38190978
AlexZgur
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помощь с dllimport
Всем здравствуйте!

Никак не получается заюзать библиотеку через dllimport. Не могу понять, что не так.

Объявление метода:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
public class epp
    {
        // for internal usage only
        [DllImport("VISA_EPP_ZT_V2.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode, SetLastError = true)]
        internal static extern int PinPad_EnablePort
            (String pszCom, int lBoundRate, String pParity, String pBite, String pStopBite);

    }



Вызов:

Код: c#
1.
int res = epp.PinPad_EnablePort("Com9", 9600, "N", "8", "1");



Описание метода библиотеки из мануала в прилагаемом файле.

При запуске ловиться эксепшн "An unhandled exception of type 'System.StackOverflowException' occurred in Unknown Module."

В чем причина может быть?
...
Рейтинг: 0 / 0
20.03.2013, 10:42
    #38191015
beg-in-er
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помощь с dllimport
AlexZgur,

автор(String pszCom, long lBoundRate,...
не?
...
Рейтинг: 0 / 0
20.03.2013, 11:57
    #38191162
AlexZgur
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помощь с dllimport
beg-in-er, пробовал. Но не оно )
...
Рейтинг: 0 / 0
20.03.2013, 12:05
    #38191169
beg-in-er
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помощь с dllimport
AlexZgur,

а гугель на что


авторВопрос решился.

http://forum.sources.ru/index.php?showtopic=242079
изначальная функция в DLL выглядела как
ExpandedWrap disabled

int WINAPI PinPad_EnablePort(char *pszCom, long lBoundRate,char *pParity, char *pBite, char *pStopBite)


Внес изменения в код приведенный выше:
ExpandedWrap disabled

//initialise the Visa serial
[DllImport(@"c:\VISA.dll")]
public static extern int PinPad_EnablePort(ref sbyte pszCom, ref int lBoundRate, ref sbyte pParity, ref sbyte pBite, ref sbyte pStopBite);//Open the communication port

private sbyte _port = 0x31;
private int _baudRate = 9600;
private sbyte _parity = 0x4e;
private sbyte _dataBit = 0x38;
private sbyte _stopBits = 0x31;



Все заработало, но открывался 1 порт вместо 5-го :(...

Впридачу еще оказалась ошибка в документации к dll - вместо номера порта должно передаваться StopBite и вместо StopBite - номер порта
...
Рейтинг: 0 / 0
21.03.2013, 09:31
    #38192587
AlexZgur
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помощь с dllimport
beg-in-er, Спасибо!

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


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