C_Sharp 板


LINE

※ 引述《sedc (大招出尽)》之铭言: : 标题: [问题] Wrapper Class与Access Violation : 时间: Sat Apr 19 16:41:43 2008 : : 实在是每次写Wrapper Class for native c++都会遇到问题Orz : : : 我现在在用一个叫RRG Kinematix的C++ library,为了能让我的c#程式呼叫它,帮它 : : 写了个Wrapper Class,简述一下目前遇到的问题: : : : 这个RRG Kinematix是处理robotics的运算,然後要执行运算前,要写二个文字档, : : 定义有robot的DOF数和对应的关节角度限制,原则上可以想像成它在运算时会耗费 : : 的空间,势必跟档案中所定义的DOF个数成正比 : : : 然後我在实际上呼叫时,发现当DOF数超过6时,就会出现AccessViolationException : : ,我猜测会不是分配给Unmanaged部份的资源不够,导致它跨去存取到了Managed 的资源 : : ,想请教一下是不是有方法可以设定分配给Unmanaged Code的记忆体大小之类的 : : 或者说我理解有误的话也请指正 谢谢 : : -- :



※ 发信站: 批踢踢实业坊(ptt.cc)
: ◆ From: 140.113.196.103 : 推 cole945:来点程式码看看吧@.@? 应该是不会有Unmanaged不够就跨到 04/19 16:51 : → cole945:managed那边去的情况..就像在virtual memory下..是不会有 04/19 16:51 : → cole945:process记忆体用太多..就盖到别的process的情况一样.. 04/19 16:52 : → cole945:会出现AccessViolationException应是unmanaged那边非法 04/19 16:53 : → cole945:存取address..看看是不是NULL没检查还是什麽的问题吧@@" 04/19 16:53 拿到的library没有source code 我写的wrapper class大概如下: namespace MgdRRGWrapper { public ref class MgdRRG : IDisposable { public: MgdRRG(); int mSetJointLimits(MgdRRG::RobotHandle handle, String^ LimitsFileName); } } 只列出会发生AccessViolationException的函式 就是上面那个mSetJointLimits 其内容是: int MgdRRG::mSetJointLimits(MgdRRG::RobotHandle handle, String^ LimitsFileName) { pin_ptr<const wchar_t> wch = PtrToStringChars(LimitsFileName); int dwNum = WideCharToMultiByte(CP_ACP,0,wch,-1,NULL,0,NULL,FALSE); if (dwNum ==0) return false; char *psText; psText = new char[dwNum]; WideCharToMultiByte (CP_ACP,NULL,wch,-1,psText,dwNum,NULL,FALSE); return SetJointLimits(handle, psText); } 简单的说就只是把代表档名的字串转换一下丢进去本来RRG中的SetJointLimits函式而已 现在的问题最怪的地方就是只要档案中的DOF数小於等於6都没问题 一到7以上就一定爆 要读的二个档案格式也很简单 .dh档 90 0 0 var 像这样每一行代表一个DOF .limit档 -20 60 像这样每一行代表对应顺序的DOF的角度值上下限 然後当七行以上後 到呼叫mSetJointLimit()时,内部执行到SetJointLimit()就会出现 AccessViolationException了 这实在是让我百思不解Orz --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.196.103 ※ 编辑: sedc 来自: 140.113.194.203 (04/20 02:59)







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP