Actually, just reviewing your post again I am fairly sure that this is a UNICODE problem! You are assigning default values to the parameters of the fuintion call. The default values are all ASCII string literals eg: const CString& param1 = "" If the default .NET compilation is UNICODE then this will fail, since you cannot initialise a UNICODE CString with an ASCII literal. For UNICODE, the code should read const CString& param1 = L"" Or, if you want to not worry about this: const CString& param1 = _T("") So, the bottom line is that the code you are trying to compile can ONLY be compiled in non-UNICODE mode - it is not UNICODE aware. Therefore, you have to make sure that .NET is not running in UNICODE mode (I assume it's an option ? Java only supports UNICODE, so there is no 'non-UNICODE' mode)