Windows 확대 API를 사용하여 .net에서 확대경 앱을 만들려고합니다. 실제로 거의 배율 수준 (기본값은 100 %)을 설정하는 것을 제외하고는 모든 것이 작동합니다. 문제는, 어디서나 인터넷에서 예제를 찾을 수없고 API에 대한 모든 문서가 C++ 코드라는 것입니다. 이것은 내가 문제가있는 특정 기능입니다. 다음과 같이Windows 확대 API, .NET 및 행렬
bool SetMagFactor(float magfactor)
{
MAGTRANSFORM matrix;
memset(&matrix, 0, sizeof(matrix));
matrix.v[0][0] = magfactor;
matrix.v[1][1] = magfactor;
matrix.v[2][2] = 1.0f;
return MagSetWindowTransform(hwndMag, &matrix);
}
MAGTRANSFORM 구조가 정의 :
typedef struct tagMAGTRANSFORM {
float v[3] [3];
} MAGTRANSFORM, *PMAGTRANSFORM;
이 가장 혼란스러운 부분은 memset 함수입니다 - 나는 그것이 그와 동등한은 .NET에서 무엇을 수행 또는 어떤 모르겠지만, 혼란 스러울뿐만 아니라 다중 차원 배열/행렬과 .NET에서 이것을 어떻게 처리 할 것인가도 있습니다.
도움을 주시면 감사하겠습니다.
구조체를 MagSetWindowTransform 함수에 전달하면 실패합니다. 내가 이상한 예외 - "System.ExecutionEngineException Throw"를 시도하고 LayoutKind.Auto 및 "지정된 레코드를 관리되는 값 클래스에 매핑 할 수 없으므로"무술을 시도합니다. –
LayoutKind.Explicit? –
레이아웃 없음으로 지정하는 것과 동일 - System.ExecutionEngineException throw 됨 –