그것은 당신이 "VC++ 라이브러리 나 함수"를 정의하는 방법을 따라 달라집니다. BSTR 타입은 꽤 VC++ 타입입니다. 그러나 "Windows"유형이라면 "Windows"라이브러리에 BSTR 조작 함수가 있고 사용할 수있는 "Windows"함수가 있습니다. 그것은 모두 당신이하고있는 일, 당신이 사용하고있는 컴파일러, 그리고 다른 기술적 한계들에 달려 있습니다. 질문에서 VC++ 라이브러리를 사용할 수없는 이유를 설명하는 것이 좋습니다.
사실 BSTR 유형은 매우 잘 이해되고 문서화되어 있습니다. here을 참조하십시오.
Microsoft BSTR 조작 함수를 사용하여 어떤 이유로 든 BSTR
과 char *
사이에서 변환 할 BSTR 조작 함수를 직접 작성할 수 없으면 가능한 범위를 넘지 않습니다.
저렴하고 매우 불쾌한 해킹으로 BSTR을 char *에 캐스팅 한 다음 모든 대체 문자를 버퍼 또는 유사한 것으로 복사했습니다. 그러나 이것은 특수 문자에 대처하지 않으며 매우 아주 고약한 해킹입니다. BSTR의 문자가 모두 표준 ASCII 문자 (또는 그렇지 않은 경우 상관하지 않음)를 보장 할 수 없거나 적절한 디버깅이 아닌 적절한 디버깅 해킹 또는 무언가에 불과하다는 것을 보증 할 수 없다면하지 마십시오. 품질의 코드.
응답 해 주셔서 감사합니다. 나는 Visual Studio 2008이지만 순수한 C 코드로 컴파일해야만한다.이 코드는 c 모듈과 대화 할 수있는 레거시 시스템과 통합되는 dll에 내장되어야한다. – sveerap