|
|
@ -17,27 +17,28 @@ |
|
|
|
#ifndef MAX_ATR_SIZE |
|
|
|
#ifndef MAX_ATR_SIZE |
|
|
|
#define MAX_ATR_SIZE 33 |
|
|
|
#define MAX_ATR_SIZE 33 |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
namespace pcsc { |
|
|
|
namespace pcsc { |
|
|
|
//! stupid windows needs std::wstring
|
|
|
|
//! stupid windows needs std::wstring
|
|
|
|
std::wstring strconv(std::string s) { |
|
|
|
std::wstring strconv(std::string s) { |
|
|
|
return std::wstring(s.begin(), s.end()); |
|
|
|
return std::wstring(s.begin(), s.end()); |
|
|
|
} |
|
|
|
} |
|
|
|
std::string strconv(std::wstring s) { |
|
|
|
std::string strconv(std::wstring s) { |
|
|
|
return std::string(s.begin(), s.end()); |
|
|
|
return std::string(s.begin(), s.end()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
typedef wchar_t char_t; |
|
|
|
|
|
|
|
typedef std::wstring string; |
|
|
|
} |
|
|
|
} |
|
|
|
typedef wchar_t char_t; |
|
|
|
|
|
|
|
typedef std::wstring string; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
#else |
|
|
|
#else |
|
|
|
#include <PCSC/pcsclite.h> |
|
|
|
#include <PCSC/pcsclite.h> |
|
|
|
#include <PCSC/wintypes.h> |
|
|
|
#include <PCSC/wintypes.h> |
|
|
|
namespace pcsc { |
|
|
|
#include <PCSC/winscard.h> |
|
|
|
const std::string& strconv(const std::string& s) { |
|
|
|
namespace pcsc { |
|
|
|
return s; |
|
|
|
const std::string& strconv(const std::string& s) { |
|
|
|
|
|
|
|
return s; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
typedef char char_t; |
|
|
|
|
|
|
|
typedef std::string string; |
|
|
|
} |
|
|
|
} |
|
|
|
typedef char char_t; |
|
|
|
|
|
|
|
typedef std::string string; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
#endif |
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
#include <boost/shared_ptr.hpp> |
|
|
|
#include <boost/shared_ptr.hpp> |
|
|
@ -403,6 +404,7 @@ namespace pcsc { |
|
|
|
|
|
|
|
|
|
|
|
//! Get the describing text of the last error
|
|
|
|
//! Get the describing text of the last error
|
|
|
|
std::string error() const { |
|
|
|
std::string error() const { |
|
|
|
|
|
|
|
#ifdef WIN32 |
|
|
|
std::stringstream ss; |
|
|
|
std::stringstream ss; |
|
|
|
switch (_state) { |
|
|
|
switch (_state) { |
|
|
|
case ERROR_BROKEN_PIPE: |
|
|
|
case ERROR_BROKEN_PIPE: |
|
|
@ -634,6 +636,9 @@ namespace pcsc { |
|
|
|
<<(_state&0xffff); |
|
|
|
<<(_state&0xffff); |
|
|
|
} |
|
|
|
} |
|
|
|
return ss.str(); |
|
|
|
return ss.str(); |
|
|
|
|
|
|
|
#else |
|
|
|
|
|
|
|
return pcsc_stringify_error(_state);
|
|
|
|
|
|
|
|
#endif |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//................................................................methods
|
|
|
|
//................................................................methods
|
|
|
|