It's a bit difficult from your code snippet to see the context how it is used but as you have seen bitset doesn't take a char* in the constructor so the code is wrong. Even if it was compiled with unicode which maybe would reduce the error to a warning in VS6 it would be a POS code anyway. If the intention was that TempBits contains 2100 '0' | '1' then you need to redesign this, it should be fairly easy to do a function to fill the bitset from such a string.