08.08.2016, 11:50 | #1 |
Участник
|
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); В чем может быть проблема?Заранее спасибо. |
|
08.08.2016, 12:21 | #2 |
Участник
|
X++: establishContext = _establishContext.call(2,0,0,hSC); |
|
|
За это сообщение автора поблагодарили: Kasper (1), Малой:))) (1). |
09.08.2016, 12:18 | #3 |
Участник
|
Большое спасибо!!!!Заработало!!!!
На 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); |
|
16.08.2016, 13:55 | #4 |
Enjoy!
|
Ну, я бы воспользовался стандартными .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 |
Участник
|
Не хочу никого обидеть, но Google пользоваться умею
|
|