내 기존 솔루션으로 VS2015를 시도했지만 컴파일러가 이전에 잡을 수 없었던 코드와 같은 유효한 새로운 오류가 발생했지만이 줄에 예를 들어 오류가 발생합니다. : 그것은 분명히 유형이 일치하지, 그 오류가 발생 왜 내가 볼 수없는C# 6/C++ ref 키워드 오류
Error CS1503 Argument 3: cannot convert from 'ref bool [mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]' to 'ref bool [mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]'
:
bool bWasAlreadyLocked = false;
oEnv.LockDoc(oWarnings, oEventDoc, ref bWasAlreadyLocked);
나는 다음과 같은 오류가 발생합니다. 이 버그는 새 컴파일러에서 발생합니까 아니면 ref
키워드의 동작이 변경 되었습니까?
이 경우 함수는 C++ 클래스에서 파생 된 C# 클래스를 사용하여 C#으로 가져온 C++ 함수입니다.
void CBkgDocEnvX::LockDoc(
CFIWarningList ^oWarnings,
CBaseDoc ^oBaseDoc,
// Output
bool %rbWasAlreadyLocked)
내가 C++ 지금은 솔루션의 소스에 대한 VS2013의 C++ 컴파일러를 사용하기로 선택 언급하는 것이 좋을 것입니다, 그래서 C++ 측면 는 이전과 동일해야합니다 : 그것은 서명이입니다입니다. 내 생각 엔 C#과 C++ 사이의 interop에서 뭔가 바뀌었다.
'LockDoc'의 서명은 무엇입니까? –
그것을 찾았습니다, 그것은 C++ 함수입니다. –
그리고'%'는 C++ 추적 연산자 인 것 같습니다. C#에서 처리하는 방법을 잘 모릅니다. –