Well, the most likely problem is that this line returns null.
DeviceInfo device = explorer.GetDevice("Scanner",BarCodeReader);
Then you get an error on the next line
this.scanner = (Scanner)explorer.CreateInstance(device);
And that is kind of an expected error if you send null as a parameter.
Should the variable
BarCodeReader
have a value?
As far as I can see it is not initialized, so what happens if you send an empty string or null?
The problem is we don't know what you have installed or not on your computer, so it is difficult to give any more exact help.
[UPDATE]
Here is some configuration documentation for POS v1.14. It should be similar to your version, I think, or you can download and install the new version.
Manually managing POS for .NET devices[
^]
It is never bad to read the documentation.