C_Sharp 板


LINE

我仿照您的提议写出了下段程式码 ========Class1.vb (Root namespace设定为CrossRawToData)==================== //此部份程式码已先行加入参考ImcCoreLib.DFile的函式库插件 Public Class Class1 Public d As Integer Public thisFile As ImcCoreLib.DFile Public Function OpenFile() As Integer thisFile.Open(".\test.RAW", 0) d = thisFile.DChannels.Item(1).Length OpenFile = d End Function End Clas //上段的作用,为创造一个类别,其中函数OpenFile()的作用, 为开启一test.Raw档案,并将第一栏的列数,回传给函数叫用者。 ========C#部份====================== //此部份已先行将上面vb编程的Dll档汇入参考 using System; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { CrossRawToData.Class1 CRTD = new CrossRawToData.Class1(); Console.WriteLine("{0}", CRTD.OpenFile); } } } //以上程式码,先NEW出一个上面VB所订的类别, 并叫用该类别的OpenFile函数,并列印於萤幕上。 =======执行後出现以下错误 Class1.vb 第五行 thisFile.Open(".\test.RAW", 0) -----> 并未将物件参考设定为物件的执行个体 百思不解。 ※ 引述《taba (得登..得登...)》之铭言: : 最近也在研究C#,没想到这.NET强调的功能竟然找了好几本书都没有, : 最後在Professional C#的电子书上找到类似的@@ 写了个C#调用VB的 : DLL的小程式,你参考一下。 : File => New => Project => Visual Basic => Class Library : 方案总管 => ClassLibrary1 => 右键 => Properties => : Root Namespace => 改成CrossLangTest : Class1.vb : =========================================================== : Public Class Class1 : Public d() As Integer = {0, 1, 2, 3, 4, 5} : End Class : =========================================================== : 上面的会被编成ClassLibrary1.dll。 : File => New => Project => Visual C# => Console Application : 方案总管 => ConsoleApplication1 => 右键 => Add Reference : => Browse => 加入刚才的ClassLibrary1.dll : Program.cs : =========================================================== : using System; : namespace ConsoleApplication1 : { : class Program : { : static void Main(string[] args) : { : CrossLangTest.Class1 oVB = new CrossLangTest.Class1(); : foreach (int i in oVB.d) : { : Console.WriteLine("{0}", i.ToString()); : } : } : } : } : =========================================================== : output: : =========================================================== : 0 : 1 : 2 : 3 : 4 : 5 : =========================================================== --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.115.61.67 ※ 编辑: Eleganse 来自: 140.115.61.67 (06/18 12:40)
1F:推 taba:thisFile new了吗? 06/18 14:28
2F:→ Eleganse:New Class1应该就会创出就有变数成员不是吗? 06/18 15:01
3F:→ Eleganse:还是VB的写法是不同的,因为我的VB算是刚接触 06/18 15:01
4F:推 taba:会创出成员变数阿,不过你没写任何constructor编译器会自动提 06/18 16:09
5F:→ taba:供default constructor,它会把d设为0,把thisFile设为null 06/18 16:11
6F:→ Eleganse:我竟然把VB也要建构函数这件事忘了 感谢提醒:) 06/18 16:15
7F:→ taba:thisFile要new一下才会指向一个真正的物件,然後才能对它操作 06/18 16:16
8F:→ Eleganse:Public ... As....这些码在vb中不是new的意思吗? 06/18 16:18
9F:→ taba:c#:Class1 o = new class1(); vb.net:Dim o As New Class1() 06/18 16:24
10F:→ Eleganse:感谢taba,我试了2天终於成功了:) 真的是实用的技术 06/18 17:06







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