.net에서 사용하고 싶은 DLL이 있습니다. dllimport를 사용하려고하는데 오류가 발생합니다. 나는 Windows system32 폴더에 dll을 넣었고 또한 exe가 저장되어있다. 함수 정의는 vb에서 작동한다는 것을 알았다.dllimport를 사용하는 C++ dll # C#
declare function LocalToWGS84 lib "TTDatum3.Dll"(Lat As Double, Lon As Double, ByVal Datum As Long) As Long
방법
class Program
{
[DllImport("TTDatum3.Dll", EntryPoint="LocalToWGS84")]
public static extern long LocalToWGS84([In,Out]double lat, [In,Out]double lon,[In,Out]long datum);
public static void Main(string[] args)
{
Console.WriteLine(LocalToWGS84(50.82011492,-0.117981131, 150));
}
}
C 번호
#ifdef __cplusplus
extern "C" {
#endif
int __stdcall WGS84ToLocal(double * lat, double * longt, int d);
SIG 오류 :
되지 않은 예외 : System.AccessViolationException는 : 보호 된 메모리를 읽거나 쓰기 시도. 이것은 다른 메모리가 VB6 손상
당신은 또한 방법의 서명을 넣을 수 : 그리고 리턴 값과 데이텀 매개 변수는이
int
잘해야 하는가? C++의 메소드 서명을 의미합니까? – Madushan원래 코드의 메소드 서명이 없다. 델파이라고 쓰여졌다. –
[In, Out] 매개 변수를 제거하십시오 ... – devundef