我有一个我想在 .net 中使用的 dll。我正在尝试使用 dllimport,但出现错误。我已将 dll 放在 windows system32 文件夹以及 exe 的存储位置。我得到的在 vb 中工作的函数定义是。
declare function LocalToWGS84 lib "TTDatum3.Dll"(Lat As Double, Lon As Double, ByVal Datum As Long) As Long
方法信号
#ifdef __cplusplus
extern "C" {
#endif
int __stdcall WGS84ToLocal(double * lat, double * longt, int d);
C#
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));
}
}
错误是:
未处理的异常:System.AccessViolationException:试图读取或写入受保护的内存。这通常表明其他内存已损坏