社区
C#
帖子详情
c#引用delphi的一个DLL的报错。。“尝试读取或写入受保护的内存错误,通常指示其他内存损坏”
小黑哥gs
2010-07-29 03:23:28
错误如题。。个人分析了下好像是deplhi里面的接口问题。。他里面的数据类型是WideString的,但是在VB里面是通过了的。。在.NET里面不行。。大家遇到过的给点答案。。在线等。。
...全文
220
11
打赏
收藏
c#引用delphi的一个DLL的报错。。“尝试读取或写入受保护的内存错误,通常指示其他内存损坏”
错误如题。。个人分析了下好像是deplhi里面的接口问题。。他里面的数据类型是WideString的,但是在VB里面是通过了的。。在.NET里面不行。。大家遇到过的给点答案。。在线等。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
小黑哥gs
2010-08-06
打赏
举报
回复
就是这么诡异。。现在已经没问题了。。但是。。XP系统下能用。。WIN7下面不能用。。还是报哪个错误。。哎。。
[Quote=引用 10 楼 jiuchunyoung 的回复:]
是不是 不小心删除掉什么东西了 或者你的引用 有添加吗 也太诡异了第一次能够用 第二次 就不能够用了
[/Quote]
JiuchunYoung
2010-08-05
打赏
举报
回复
是不是 不小心删除掉什么东西了 或者你的引用 有添加吗 也太诡异了第一次能够用 第二次 就不能够用了
小黑哥gs
2010-07-30
打赏
举报
回复
不是你们想的那样的问题。。这个外部的DLL在VB里面用没问题。。我在C#里面用第一次没问题。。第二次用就报那么错误。。而且我在C#里面还没给得到他的返回值赋值就已经出错。。今天还要继续调。。大家有谁遇见过的指点下。。谢谢了
小黑哥gs
2010-07-29
打赏
举报
回复
请教下大家。。“用Unicode 去对widestring”是啥意思?
mayonglong
2010-07-29
打赏
举报
回复
[Quote=引用 4 楼 wanghui0380 的回复:]
这个问题,月月都有人问啊
StringBuilder
CharSet=CharSet.Unicode
[/Quote]
直接在CSDN里搜,这个类似的帖子好多
小黑哥gs
2010-07-29
打赏
举报
回复
[Quote=引用 1 楼 wuyazhe 的回复:]
.net下你用的什么类型声明的?试试StringBuilder
[/Quote]
我引用的那个DLL是一个需要注册的玩意,然后我第一次调用的时候还是好的,但是当我第二次调用那个接口的时候就挂了。。报刚才那个错误。。真头疼啊
bdmh
2010-07-29
打赏
举报
回复
用Unicode 去对widestring
wanghui0380
2010-07-29
打赏
举报
回复
这个问题,月月都有人问啊
StringBuilder
CharSet=CharSet.Unicode
JiuchunYoung
2010-07-29
打赏
举报
回复
var
wstr:WideString;
str:string;
begin
str:=WideCharToString(PWideChar(wstr));
end;
JiuchunYoung
2010-07-29
打赏
举报
回复
WideString 以两位方式处理字符串,而 String 则一位一位处理。不过,这意味着什么呢?
如果你只开发英文版的软件,那无所谓,这两个类型没有任何区别。但是如果使用了中文,那就要严格区分这两个类型的区别了,否则就像我前几天那样,为了乱码的问题百思不得其解。
聪明一点的朋友会说:我知道它们的区别,所以凡是用到中文的地方我全都用 WideString 。一开始我也是这么认为的,但其实这种观点恰恰可能会产生乱码哦。(不过不是非常严重的乱码,一般出现在字符串的末尾)
在 Delphi 的定义单元中有个函数,叫 UTF8Encode ,定义是这么写的:
function Utf8Encode(const WS: WideString): UTF8String;
...
注意这个函数的参数写的类型是 WideString ,不知道这算不算一个 BUG ,我就是按照了它的定义使用了 WideString 类型才出现了乱码。当我把参数类型换成 String 后一切都正常了,这是为什么呢?
后来仔细研究了一下 UTF8Encode 的函数体,处理过程中又转向了 Utf8ToUnicode 函数。原来它需要逐字节处理的。就是说无论是双字节的中文还是单字节的拉丁文,它全都把它看作机器码(什么乱七八糟的数字我也不管了,反正机器明白就行了),然后根据这些代码进行转换。而如果输入参数采用了双字节的 WideString ,虽然中间还是可以保持正常处理,但是最后一个字就会处理不好了,所以就产生了乱码。
所以,我认为 UTF8Encode 的参数只能是 String 类型,而不能是 WideString 类型。否则就失去了这个函数的意义了,出来后还是乱码
兔子-顾问
2010-07-29
打赏
举报
回复
.net下你用的什么类型声明的?试试StringBuilder
LabWindows/CVI:电子工程师的GUI开发利器,C语言实现高效上位机
本文深入介绍LabWindows/CVI作为电子与工控工程师专用GUI开发工具的核心价值:基于标准ANSI C语言,集成所见即所得UI编辑器、硬件I/O库(串口/DAQ/GPIB/VISA)、专业控件(波形图、仪器面板)及高级分析库(FFT、滤波、拟合)。对比VC++、
C#
、LabVIEW等方案,CVI在开发效率、硬件亲和力、运行稳定性与学习成本间取得最佳平衡。文中通过串口数据监视器实战演示快速开发流程,并总结性能优化、模块化设计与常见问题排查经验。
TypeScript类型系统与全栈项目资源包
本资源包整理了TypeScript类型系统设计检查清单、前后端接口契约模板、全栈项目目录结构、tsconfig配置基线、CI质量门禁、JavaScript迁移到TypeScript计划和常见问题排查指南,适合前端开发、Node.js后端开发、全栈工程化学习和团队代码质量建设参考。内容为原创模板,不包含真实生产密钥、账号、内部仓库地址或敏感配置,可按项目实际技术栈调整。
轻量级物联网开源平台,6分钟快速部署,千万级设备承载、电信级稳定性 物模型-规则引擎-数据通道-组态页面全流程低代码开发、前后端完全开源、支持多行业工业协议
DGIOT是国内首款轻量级开源工业物联网平台,我们致力于提供五类物联网解决方案:国企/研究院:平台代码开源,无版权产权困扰,国产无“卡脖”之忧;系统集成商:通用设备海量接入、定制设备二次开发、6分钟一键式私有化快速部署,低成本(降90%成本);工业设备制造商:海量设备上线运维,不
受
公有云限制,低成本,短周期自建平台,私有化部署,数据安全;开源平台开发者:一键式开发环境,集成和兼容各种最优开源工具,快速承接物联网项目;垂直领域物联网平台:快速部署私有化平台,千万级承载,运营级底座,全开放扩展
单相逆变器闭环逆变电路PWM模型仿真研究(Simulink仿真实现)
内容概要:本文围绕“单相逆变器闭环逆变电路PWM模型仿真研究”展开,基于Simulink平台构建单相逆变器的闭环控制系统仿真模型,重点研究PWM调制技术在逆变电路中的应用与实现。文中详细阐述了系统架构设计、电压电流双闭环控制策略的实现原理、控制器参数设计及仿真建模全过程,并通过仿真结果验证了控制方案在动态响应、稳态精度与系统稳定性方面的有效性。同时,文档还涵盖多种电力电子系统典型应用场景,如多类型短路故障仿真(中性点不接地、经小电阻接地、经消弧线圈接地等)、软开关技术、微电网能量管理、MPPT控制等,体现出较强的技术综合性和工程实践价值。; 适合人群:电气工程、自动化、电力电子与新能源等相关专业的高校本科生、研究生、科研人员,以及从事电力系统仿真、逆变器设计与新能源并网技术研发的工程技术人员。; 使用场景及目标:①掌握基于Simulink的单相逆变器闭环控制系统建模与PWM仿真方法;②深入理解双闭环控制、SPWM/SVPWM调制、系统稳定性分析等核心技术原理;③为课程设计、毕业设计、科研项目或实际工程开发提供可复用的仿真模型与技术支持; 阅读建议:建议结合文中仿真模型动手实践,重点掌握PI控制器参数整定、PWM信号生成机制与仿真结果分析方法,同时可延伸学习文档中涉及的软开关、故障仿真、微电网控制等关联技术,以拓展系统级设计能力。
群内分享图纸缺字
报错
,综合字体库从容应对.rar
做 CAD 的小伙伴注意啦!打开图纸文字乱码、缺字、全是问号?别慌,我整理了全套解决办法,大部分这类问题都能一次性修好,欢迎下载!
C#
111,131
社区成员
642,541
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章