2012-06-25 5 views
1

VB.NET에서 일부 ASM 함수를 호출하고 싶습니다. 내가 어떻게 해? 성능 목적을위한 것입니다.VB.NET에서 asm 사용

웹에서 아무 것도 발견되지 않았습니다.

들으

답변

5

VB.NET과 CIL와 어셈블리 코드를 혼합 지원하지 않는 일반적으로 CLR은 (는 가능하지만, 그냥 그렇지 않은 가정하자)이 '어셈블리주의 (동일한 어셈블리에 "는 .NET 실행 파일에 주어진 이름이며"어셈블리 코드 "를 나타내지는 않습니다. 혼란 스럽습니다.

당신은 interop을 통해 이것을 원할 것입니다. 어셈블리 고유의 Windows DLL 파일로 어셈블리 지침을 컴파일 한 다음 해당 함수를 내 보내야합니다 (어셈블러/링커에서이 작업을 수행하는 방법에 대한 지침이 제공됨). 그런 다음 VB.NET에서 정적 클래스 ("Module ") DLL에서 내 보낸 각 함수에 대한 DllImport 문이 있습니다. 그렇다면 그 기능을 호출하는 것입니다.

네이티브 형식 변환 ("마샬링")은 CLR에서 처리합니다.

+0

Thx, 성능 향상을 기대할 수 있습니까? – Naster

+0

그것은 당신이 달성하기를 원하는 것에 달려 있습니다. .NET 프레임 워크에는 이미 많은 문자열 연산과 기타 .NET 내장 함수의 "기본"(CIL 이외) 구현이 있습니다. 이미지/비디오 프로세싱 및 압축/인코딩의 것들이 네이티브 (C/C++ 또는 어셈블리)에서 가속화 될 수 있다고 상상해보십시오. 그러나 그렇게한다면 C++로 전체 프로그램을 작성할 수도 있습니다. – Dai

1

이것은 C#으로 쉽고 안전하게 수행 할 수 있으며 VB에서 작동하지 않는 이유는 알 수 없습니다.