惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
F
Fortinet All Blogs
D
Docker
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
WordPress大学
WordPress大学
罗磊的独立博客
Y
Y Combinator Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
J
Java Code Geeks
T
The Blog of Author Tim Ferriss
U
Unit 42
N
Netflix TechBlog - Medium
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
V2EX
云风的 BLOG
云风的 BLOG
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog
Hugging Face - Blog
Hugging Face - Blog
Stack Overflow Blog
Stack Overflow Blog
爱范儿
爱范儿
酷 壳 – CoolShell
酷 壳 – CoolShell
P
Proofpoint News Feed
G
Google Developers Blog
H
Help Net Security

博客园 - 潘胜国

Emgu学习之(一)----Emgu简介 网站预编译命令说明(aspnet_compiler) VS2005即时窗口 DataSet主副表关系应注意的问题 通用验证脚本 SQL SERVER小Tips AG_E_RUNTIME_METHOD : CreateFromXaml错误的及解决 [转载]Converting a bitmap to a byte array 调试web服务器无法启动 IE 7 BETA 3安装 什么是爱情【转载】 取Assembly中的资源 利用IIS压缩文件 C# 2.0泛型初试 Page常用方法 IFame的另一种表现 自动提交问题,不知道这算不算是MS的一个BUG Ajax实现两级下拉框连动的应用 for和foreach的执行效率的问题之新发现
.NET 调用c++库注意事项
潘胜国 · 2017-06-29 · via 博客园 - 潘胜国

很久没有更新了,主要还是因为自己懒吧,希望从今天开始坚持至少一周写一篇文章。

调用函数库是正常的,调用完成后,在使用EF进行数据更新时,将发生如下异常信息,而且几乎必现。

行库遇到了错误。此错误的地址为 0x79e8eda2,在线程 0xaa4 上。错误代码为 0xc0000005。此错误可能是 CLR 中的 bug,或者是用户代码的不安全部分或不可验证部分中的 bug。此 bug 的常见来源包括用户对 COM-interop 或 PInvoke 的封送处理错误,这些错误可能会损坏堆栈。

有时可能会报“读或者写受访问的内存”。而如果在调用前后设置断点,将不会参数异常。

c++ 函数定义

 BOOL WINAPI DataEncryption(const BYTE* pszData, \
         const BYTE* pszDispersionFactor,\
         BYTE** pcResult);

c#调用定义

bool DataEncryption(string encryptData,string dispFactor,ref string result);

如果使用以上定义,调用将发生上面错误,正确的定义应该是

bool DataEncryption(string encryptData,string dispFactor,ref StringBuilder result);

string->StringBuilder即可解决这个问题。

这个问题个人觉得应该是是由于string在.NET中的特殊实现引起的。如果谁知道真正的原因,请帮忙解释一些原因