0
하나의 입력과 2 개의 출력 매개 변수를 가진 C# DLL의 메서드가 있습니다. 세 가지 모두 String입니다.C#에서 문자열 매개 변수 값을 C++로 가져옴 BSTR *?
저는 firebreath C++에서이 함수를 호출하려고합니다. C++에서 BSTR * 값을 전달해야하는 방법은 무엇입니까? 어떻게 C#에서 그 가치를 얻을 수 있습니까?
는 이미BSTR* userKey =NULL;
*userKey = ::SysAllocString(L"Hello Managed World");
하지만 그 작동하지를 사용하여 얻을 노력했다.
C 번호 기능 :
public void GetPublicKeyforEncryption(String ToUserEmailAddress, out String userKey , out String mySharedKey)
C++ 호출 기능 : 내가 메모리를 할당하고 합격을 어떻게 ++ GetPublicKeyforEncryption bsData 값이 제대로 전달되는 위의 C에서
std::wstring& ToUserEmailaddress;
BYTE **bEncryptData = NULL;
BSTR bsData = SysAllocStringLen(ToUserEmailaddress.data(), ToUserEmailaddress.size());
BSTR* userKey =NULL;
BSTR* mySharedKey =NULL;
CSharpInterface->GetPublicKeyforEncryption(bsData,userKey ,mySharedKey);
,
userKey ,mySharedKey in the BSTR* type
누구든지이 문제를 해결할 수 있습니까? 도와주세요. 올바른 코드 아니라
감사 SANJU
감사합니다, 오류 C2664 : 한
out string
인수를 가정 일반 코드 '표준 : : basic_string <_Elem, _Traits, _Ax> :: basic_string (CONST std :: basic_string <_Elem, _Traits, _Ax> & ' –내 코드 조각 std :: std :: basic_string <_Elem, _Traits, _Ax> &' 문자열 그래서 컴파일 오류를 생성 할 수 없습니다. BSTR에서 std :: wstring으로 변환하려면 wchar_t *로 캐스팅해야 컴파일러에게 데이터 손실이 발생할 수 있음을 알 수 있음을 알립니다. –
K.i가 확인합니다 ... –