c#调用c++写的ocx控件,当调用它的方法是报尝试读取受保护的内存

ocx的方法是set_video_url(LPCTSTR)
c#传进去string类型的参数,会报错 尝试读取受保护的内存
![![图片说明](https://img-ask.csdn.net/upload/201808/20/1534747223_268664.jpg)图片说明](https://img-ask.csdn.net/upload/201808/20/1534747204_872248.jpg)图片说明

是不是File1的参数有问题,检查一下文件路径访问

在路径前面加个@,防止转义。string path=@"xxxxxxx";

还有就是当路径种出现特殊字符时也会报错,**解决办法:**把该字符串变量转换为字节变量,在DLL程序中再把接收到的字节变量转换为字符串变量。

你好,可能是系统数据库问题导致的:尝试读取受保护的内存。
解决方法: 用管理员身份运行CMD,输入netsh winsock reset并回车(注意,必须是已管理员身份运行,这个重置LSP连接)

你的控件32bit还是64bit,是否正确注册,是否有权限。如果ocx是32bit的,你的.net程序集也要编译成32bit。另外就是ls说的路径问题。最好把ocx和你的程序一起调试。
vc++可以单独调试ocx的。

查看下这个ocx依赖库或者依赖运行环境是否都正常,你的操作系统是否是阉割过缺少某些dll的