AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.08.2016, 11:50   #1  
Малой:))) is offline
Малой:)))
Участник
 
3 / 10 (1) +
Регистрация: 22.08.2008
winscard.dll
Добрый день!
Стоит задача на Dynamics AX2009 с подключенного карт ридера считать код карты. Использую winscard.dll. Операционная система XP.
X++:
DLL         _winApiDLL   = new DLL("C:\\Program Files\\Microsoft Dynamics AX\\50\\Client\\Bin\\winscard.dll");
DLLFunction _establishContext = new DLLFunction(_winApiDLL, 'SCardEstablishContext');
binary    hSC = new Binary(4);

    _establishContext.returns(ExtTypes::DWord);
    _establishContext.arg(ExtTypes::DWord,
                    ExtTypes::DWord,
                    ExtTypes::DWord,
                    ExtTypes::Pointer);

    establishContext = _establishContext.call(0,0,0,hSC);
establishContext возвращает 0, как и надо, но в hSC handle не пишет (не переопределяет).
В чем может быть проблема?Заранее спасибо.
Старый 08.08.2016, 12:21   #2  
terraByteG is offline
terraByteG
Участник
 
15 / 17 (1) ++
Регистрация: 10.03.2016
X++:
establishContext = _establishContext.call(2,0,0,hSC);
За это сообщение автора поблагодарили: Kasper (1), Малой:))) (1).
Старый 09.08.2016, 12:18   #3  
Малой:))) is offline
Малой:)))
Участник
 
3 / 10 (1) +
Регистрация: 22.08.2008
Большое спасибо!!!!Заработало!!!!
На connecte застряло
X++:
binary    handle = new Binary(4);
binary    activProtocol = new Binary(4);
str         test;

test =readers.wString(0); // имя ридера, получилось из вызова функции ScardListReaders
_cardConnect.returns(ExtTypes::DWord);
_cardConnect.arg(ExtTypes::DWord,
                    ExtTypes::String,
                    ExtTypes::DWord,
                    ExtTypes::DWord,
                    ExtTypes::Pointer,
                    ExtTypes::Pointer);
cardConnect =_cardConnect.call(hSC,test,2,3,handle,activProtocol);
cardConnect возвращает 6 - Handle is invalid
Старый 16.08.2016, 13:55   #4  
iCloud is offline
iCloud
Enjoy!
Аватар для iCloud
MCP
Злыдни
 
195 / 112 (4) +++++
Регистрация: 06.03.2012
Ну, я бы воспользовался стандартными .Net классами для решения данной задачи.
В google масса примеров считывания на других языках, которые Вам не составит труда перевести на xpp. Описания ошибок по ссылкам ниже. Не забывайте про permissions.

А вообще, если прям так хочется, исчерпывающее инфо (Programming the WinSCard API in "C"):
http://www.smartcard-magic.net/en/pc...scard-api-c-c/
Вот Вам документация:https://msdn.microsoft.com/en-us/lib...(v=VS.85).aspx
Старый 19.08.2016, 12:04   #5  
Малой:))) is offline
Малой:)))
Участник
 
3 / 10 (1) +
Регистрация: 22.08.2008
Не хочу никого обидеть, но Google пользоваться умею
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
palleagermark: Creating code for a dll that might or might not be on the system Blog bot DAX Blogs 0 07.01.2016 11:11
Ax3 and Win2008 для печати Arahnid DAX: Администрирование 13 22.04.2013 17:07
MSDAX 4.0 и планировщик win server 2008 werov2010 DAX: Администрирование 11 16.08.2012 14:18
Client Axapta 3.0 SP4 и Linux. Как запустить? Daiver DAX: Администрирование 10 28.06.2007 15:59
при вызове функции из своей DLL, вылетает ошибка Delfins DAX: Программирование 9 07.03.2006 19:29

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 03:12.