c#调用delphi编写的dll文件报错,尝试读取或写入受保护的内存

问题描述

c#调用delphi编写的dll文件报错,尝试读取或写入受保护的内存
delphi函数原型 Procedure invoke(params :PChar; result : PChar) ;

解决方案

把这个delphi的原型改一下,改为

Function Pchar invoke(params :PChar) ;

再试试

解决方案二:
Function invoke(params: PAnsiChar): PAnsiChar ;

时间: 2025-01-01 13:28:15

c#调用delphi编写的dll文件报错,尝试读取或写入受保护的内存的相关文章

C#调用其他语言DLL库,提示尝试读取或写入受保护的内存。这通常指示其他内存已损坏

问题描述 C#调用其他语言DLL库,提示尝试读取或写入受保护的内存.这通常指示其他内存已损坏代码如下==========================================DLL函数int__stdcallActionReceived(constchar*devId,constint*windowId,constchar*cmd,char*data)==========================================C#调用[DllImport(@"Caller.dl

求助,C#调用C++dll时提示:尝试读取或写入受保护的内存。这通常指示其他内存已损坏。

问题描述 C++dll的头文件接口描述如下:#pragmapack(push,1)typedefstructXCtrlStatus{XCtrlStatus(unsignedlongV=0){*reinterpret_cast<unsignedlong*>(this)=V;}unsignedcharERR:1;unsignedcharAUTO:1;unsignedcharRUN:2;unsignedcharDIR:2;unsignedchar:1;unsignedchar:1;unsignedc

C# 调用C++的dll,提示&amp;amp;quot;尝试读取或写入受保护的内存。这通常指示其他内存已损坏&amp;amp;quot;

问题描述 C++:GPSSUPPORT_APIint__stdcallress(unsignedchar*compr,unsignedlongcomprLen,unsignedchar**uncompr,unsignedlong*uncomprLen);C#:publicstaticexternintZlibUncompress(refbyte[]compr,longcomprLen,refbyte[]uncompr,reflonguncomprLen);调用:privatebyte[]Keys

asp.net调用C++的Dll,报这样的错“尝试读取或写入受保护的内存。这通常指示其他内存已损坏”

问题描述 publicclassmsdid{[DllImport(@"E:ddaSoftEncryptDllDebugSoftEncryptDll.dll",EntryPoint="GetHardDiskSN",CharSet=CharSet.Auto,CallingConvention=CallingConvention.StdCall)]publicstaticexternStringBuilderGetHardDiskSN();}//引用DLLprotecte

c#调用c++dll报错:尝试读取或写入受保护的内存。这通常指示其他内存已损坏。

问题描述 c++原型函数boolDetBelt(constchar*chImgFile,doubledStrictDegree=1.0,XSCRECTroiRect=XSCRECT(),constchar*dstFile=NULL);structXSCRECT{intx;inty;intheight;intwidth;XSCRECT(){x=0;y=0;height=0;width=0;}};声明c#代码[StructLayoutAttribute(LayoutKind.Sequential)]

dll c#-c#调用c++的dll出现尝试读取或写入受保护的内存问题

问题描述 c#调用c++的dll出现尝试读取或写入受保护的内存问题 使用c#调用c++的一个dll.c++的接口函数为: extern "C" __declspec(dllexport)bool __stdcall CreateDetmObject(IDetManager **ppDetManager); 参数IDetManager为一个结构体: struct IDetManager { virtual void __stdcall SetListener(HWND hWnd) = 0

求教如何解决C#调用C++ DLL出现“尝试读取或写入受保护的内存。这通常指示其他内存已损坏”错误

问题描述 我正在编写设备处理程序,使用C++写的DLL,其中一个部分需要用到回调函数.现在遇到的问题是使用InitDevice()函数后,回调函数能够正常运行获取返回数据,但是随后调用Close()函数,就会导致系统报出"尝试读取或写入受保护的内存.这通常指示其他内存已损坏"错误.使用了N种方式也没有解决这个问题,有哪位高手能够帮帮忙啊!C++函数原形如下:extern"C"__declspec(dllexport)HANDLE__stdcallLogin(cons

C# 调用C++的DLL文件出现问题。尝试读取或写入受保护的内存。这通常指示其他内存已损坏。

问题描述 我用C#开发一个项目,需要饮用C++的DLL,但是调用其中的方法是有几个函数正常,有一些方法总是报错.错误为:"尝试读取或写入受保护的内存.这通常指示其他内存已损坏."哪位大神可以帮我看看.这是DLL中的方法:typedefstructehInformation{std::stringehfilename;std::stringmark;//eh头文件的标示std::stringsendAddr;//eh头文件的发送地址std::vector<std::string&g

dll结构体-C#调用DLL结构体,第一次成功,第二次的时候就报错。尝试读取或写入受保护的内存。

问题描述 C#调用DLL结构体,第一次成功,第二次的时候就报错.尝试读取或写入受保护的内存. C++代码 typedef struct tagIDCardData{ char Name[32]; //姓名 char Sex[6]; //性别 char Nation[20]; //名族 char Born[18]; //出生日期 char Address[72]; //住址 char IDCardNo[38]; //身份证号 char GrantDept[32]; //发证机关 char User