C++, sterowanie LPT konwersja stringa na unsigned short

0

Witam. Jestem początkującym programistą i na drodze swojej nauki napotkałem na problem. Otóż do sterowania portem LPT używam biblioteki inpout32.dll. Stan wyjścia na port dostaję w postaci stringa(wyjscie, np wyjscie="0xFF", jest on przekazywany z konwertera liczb binarnych na szesnastkowe) aby został on odczytany przez polecenie wysyłania (OutPort) musi on być w formie USHORT. czy jest jakaś możliwość przekonwertowania liczby ze stringa go USHORT?

Fragment kodu:

 
 //uchwyt do pliku dll i wska¿nik do funkcji zapisuj¹cej na port
    HINSTANCE hDLL;
    typedef void (*OutPortType) (USHORT adres,USHORT wartosc);
    OutPortType OutPort;

    // ³adowanie pliku dll
    hDLL=LoadLibrary("inpout32.dll");

    //sprawdzanie czy dll nie jest uszkodzony
        if (hDLL!=NULL)
            OutPort=(OutPortType) GetProcAddress(hDLL, "Out32");
        else
            MessageBox(NULL,"ERROR","Blad ladowania",MB_OK);
    //wpisyawanie do portu
    OutPort(0x378,wyjscie);

    return 0;
0

Takie coś powinno pomóc

unsigned short number = static_cast<unsigned short>( strtoul( wyjscie.c_str(), NULL, 0 ) );
1
#include <iostream>
#include <string>
using namespace std;

int main() 
{
	string x = "0xFF";
	int a = stol(x, 0, 16);
	unsigned short b = static_cast<unsigned short>(a);
	cout << b;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1