C#调用C++编译的DLL问题

写了个简单的dll尝试调用

testcpp.cpp:
extern “C” __declspec(dllexport) int testadd(int i)
{
return i++;
}

c#:

using System;
using System.Runtime.InteropServices;
public class MainClass
{
[DllImport("testcppdll.dll", EntryPoint = "testadd", CallingConvention = CallingConvention.StdCall)]
public static extern int testadd(int x);
static void Main()
{
Console.WriteLine(testadd(5));
}
}

运行的时候出现“请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。”错误
网上找了一堆都是说类型不匹配导致的问题,我可是把int long uint ulong Int16 Int32 Int64各种都试过排列组合。。。
当然这也是潜在可能的错误啦。
今天早上蛋疼地重新开了个程序用.net framework 2.0重新调用了一下,结果就pass了!
原来真正的罪魁祸首是.net framework的版本。。
继续尝试了一下,一直到.nf 3.5都ok

0 Comments

在windows下释放端口

今天开ANSYS,总说没有License,开License Manager看,发现FLEXlm一直是not running。看记录说是1055端口被占用了。
于是开cmd,输入:
netstat -a -n -o

协议 本地地址 外部地址 状态 PID
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 820
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:1025 0.0.0.0:0 LISTENING 500
TCP 0.0.0.0:1026 0.0.0.0:0 LISTENING 884
TCP 0.0.0.0:1027 0.0.0.0:0 LISTENING 1012
TCP 0.0.0.0:1029 0.0.0.0:0 LISTENING 572
TCP 0.0.0.0:1035 0.0.0.0:0 LISTENING 556
TCP 0.0.0.0:1055 0.0.0.0:0 LISTENING 4032
TCP 0.0.0.0:2325 0.0.0.0:0 LISTENING 692
TCP 0.0.0.0:2664 0.0.0.0:0 LISTENING 5044
TCP 0.0.0.0:55555 0.0.0.0:0 LISTENING 1856
……后面省略

坑爹呢!硕大的4032占用了我的1055!
于是开任务管理器,查看-选择列-选上PID
坑爹呢!说好的4032进程呢??哪里去了??不!见!了!

还好有万能的命令行
于是在命令行(必须要用管理员权限运行\windows\system32\cmd.exe)输入:
taskkill /pid 4032 /f

好!可爱的ansys回来了

0 Comments

一点缺憾美

这次海川要我给新年晚会随便弄一下开场视频,想起来自己也好久没有做过AE了。我们大一的时候,那个元旦晚会都已经过去三年,现在海川也都改叫靳导;周围的同学,保研的保研,出国的刚刚交完申请,考研的还在苦逼地自习。

视频都是一帧一帧渲染出来的。为了给大家看到流畅清晰的画面,AE不辞劳苦地给每一秒都填上24幅或者30幅的画面,只是当我们看到视频的时候,没有人会去想背后有多少画面可能就这样被我们忽略了。但要是缺了几帧或者有几个画面没有衔接好,即使是0.1s的瑕疵,也能轻易被眼球捕捉到。我又总是有点强迫性地追求完美甚至钻牛角尖,感觉有一点问题都很不爽,就像是背上有刺扎着。于是乎,一点小瑕疵都可能会被迫重新渲染输出,一弄就是几个钟头。

生活的没有重新输出的机会的,但是它却像视频一样,需要把每一个时刻都过得好好,一点点瑕疵都会觉得扎眼。只是,回想起过去好多好多我觉得是“瑕疵”的事情,现在看起来只会是一句笑话带过。嗯,其实也没什么大不了的嘛。最近我的rp跌到爆,各种丢东西各种犯错误,貌似逃不开读书每个阶段最后一年的诅咒。不过想想,还是看开点好了,给自己留下缺憾美。

2 Comments

还挺有意思

昨天把做好的程序给老师看, 其实也不算是全部做好, 就是界面好看了一点, 有分栏, 区块什么的.
老师说, 做界面就是比较繁琐一点哈, 现在觉得写程序还有意思么?
我竟一时回答不上来, 随口说了一句”总是有些新鲜的东西吸引着我吧”搪塞过去了.

有意思么? 回来的时候我不禁也问了自己.

从最开始的GWBASIC开始接触编程.
犹记得那是一个暑假的开始, 当爸爸要我去学电脑的时候, 我还很不情愿, 这个兴趣班要废掉我一个暑假, 别的孩子都在外面high的时候, 我就苦逼地坐在课室里面上课. 犹记得那是年轻的黄老师, 还没当校长的时候, 亲力亲为给我们讲课; 还有左老师, 对着一群闹腾的小孩, 很多都是被家长逼来上课的, 很不安稳地在课室里面. 犹记得那时候的软盘还是5寸的, 比孩子们的脸还大, 一张720K的容量, 现在随便一个u盘都4G, 8G, 3寸软盘都已经销声匿迹了, 更别说薄如纸片的5寸盘. 犹记得上机的时候, 有人带超级玛丽在软盘里面, 趁着老师走开偷偷地拿出来玩. 犹记得每一阶段都刷人刷人淘汰下去, 当时认识的好多朋友, 现在不知道都过得怎样了呢?

然后转学pascal.
犹记得那是黄老师变成黄校长的时候, 开始征战各种比赛, 师兄们给我们带了好头, 但是我们却都太贪玩了. 犹记得电脑班的教室, 每个周三下午都是热闹的时候, 当然不是在写程序, 而是cssc. 犹记得我认识最早的大牛番茄, 带我学习了好多东西; 现在已经变成李博士的liruizhe, 去了facebook的xm, google的zy, 还有可乐王子, 那一届真是百花齐放; 接下来有在香港的yym, 一起去冬令营, 同样是牛得不可开交; 还有交大的小钢牙, 度娘的鸵鸟. 犹记得我们这一届, 鼎爷是我最早认识的, 坐在486丛中, 我问他叫什么名字的时候, 完全没有先心病的征兆; 还有丁丁, hyl, wjd, zl, cwy.. 犹记得师弟师妹们, 小欣欣, 可爱的小谢, zgl, qyes, 还有半路跑了的gyz..

很遗憾我弄了这么久的程序还是没有成果, 大比赛的奖项都与我绝缘, 只是零零星星一些可有可无的小打小闹.
但也就是这些小打小闹, 还让我稀里糊涂地离开了编程转学机械, 结果又回来继续写程序.
不敢说我前这么些年的学习比别人有多少优越之处, 但至少我可以更快上手一些. 事实上现在弄的东西跟我以前学的也没太大关系, 这些简单的数值计算也用不到什么高深的算法或者数据结构, 而且还是用新的语言.

只是我似乎逃不开与写程序之间的这段不解之缘吧, 确实给我的学习提供了不少便利. 我以后的工作应该跟IT无关, 但是我依然很高兴能有这么一段回忆, 在北中电脑班里面跟一群同学师兄师姐师弟师妹的欢声笑语.

0 Comments

小记一下久违的coding, 另附matlab与C#连接

最近写个仿真程序, 一开始纠结在是用delphi, C还是java. 经过小白的推荐还是用了C#, 写界面简单一些, 语法也比较熟悉, 不需要太大变动.

前几周基本上把系统设计的部分搞完了, 当然就只是最普通的两轮升压式. 然后就是苦逼的界面了..主要是这个需求不明确啊..下次一定得先问清楚.
这个程序需要系统设计, 部件设计, 系统仿真. 原本导师打算用matlab做的,但是matlab..好吧我是totally没用过matlab编程, 何况后面还要用数据库什么的, 从一开始就没有往那方面考虑. 结果现在搞出一个要用原来写好的matlab程序来做部件设计..我就confused了

上网搜了一下, c#调用matlab也不会太困难

  1. 首先随便写个m程序, 保存
  2. 然后在matlab里面输命令deploytool
  3. 新建一个project, 选择.net assembly
  4. 右边出一个小框框
  5. 添加类, 文件, 名字都随便输
  6. 编译!
  7. 在c#里面引用编译好的dll
  8. 再引用一个X:\Program Files\MATLAB\R2011b\toolbox\dotnetbuilder\bin\win32\v2.0\MWArray.dll
  9. 添加CsharpMatlabCompilerVer4.cs
  10. 添加代码
    using MathWorks.MATLAB.NET.Arrays;
    using MathWorks.MATLAB.NET.Utility;
  11. 我的m文件是testadd, 类名是Cadd,于是乎
    testadd.Cadd ca = new testadd.Cadd();
    MWArray res;
    res = ca.add((MWArray)2, (MWArray)2);
    label1.Text = res.ToString();

中间出了点小毛病, 因为我蛋疼地同时装了2011a和2011b, 必须使用同一个版本编译出来的dll和对应的MWArray.dll..

用了两本书, 都是最基本最弱智最启蒙的, 可以参考一下:

0 Comments

6班的各位,我们都认识9年了

20023206xx,共同的代号
六年前《吴刚奔月》,八年前《double rings》

那一年的九月,带着稚气的我们聚在一起。从开学开始,一个个认识大家的场景还历历在目。

我还记得看分班那一天,兴奋地发现和鼎爷分在一起。我们认识算最久的了吧,五年级的时候,在电脑班里面,拿着那个三寸软盘,问他叫什么名字。那次跑800米,完全不知道你有先心病啊。在重庆过得可好?妹子可好?

我还记得报道那一天,关政闻穿着红色短袖,黑色短裤,还有标志性的一脸痘痘。放学一起骑车,考试一起抄书,上课互相de大比,弹硬币,花样多得我都记不清了。徐老师最终还是忍不住把我们拆散了…

我还记得蒋雪莹坐在我后面,这个名字太熟悉了,因为孖仔早就跟我说过,貌似是大孖的暗恋对象。三年就一直迟到,貌似六年也是很少不迟到吧,上大学就更加了吧..行动迟缓就是你最大的特征了,哈哈。

我还记得前面是胡慧妍,我的乖女。那一天我说我会画画,你回过头说,给我画一张吧。我说凭什么呀?做我的乖女就给你画。结果还真是了。。虽然我一直没给你画过。。你早早就出来深圳工作了,真是辛苦。。把拔祝你一切顺利~

我还记得军训的时候,跟梁锐一间宿舍。最后那天晚上,挤在一张床上聊得巨high,第二天去马坝人遗址,还在讲仙剑的事情;还有每个中午,骑车匆匆出去外面吃饭再急急忙忙赶回来;还有午休值日检查,游荡在教学楼里;还有在公车上面DRAW!!的疯狂;还有一起去丽江去凤凰;还有拍片。我们都有一颗叛逃的心。

我还记得CH是我们的数学课代表,三年换了三个数学老师,他还一如既往。初二的时候一起合作两幅画,后来做道具的各种搞笑。在凤凰的时候,跟你一起选学校,算不算半个红娘了呢~未来的设计师啊。

我还记得大头罗韵在某次英语课的对话表演之后忽然就成了我孙女,还附带了另一个孙女龚勉..有一次午休还打电话去电台点歌。你说搬到我家对面以后,就可以直接从窗口把我叫出来了呢。那天大雨,中午回家淋得要死要死的。还有一次等不到公车我们唱着劲歌金曲走回去。还有,我穿短裤有那么好笑么…

我还记得孔+明从初一开始就高到不行,而且越来越高,到达一个无法触及的高度…坐了多少年14路12路了啊,现在一见14路就想跑。高中又同桌,薯片啊,糖啊,书啊,手机啊,high啊。

我还记得阿靓啊,出黑板报,涂颜料什么的,还有你家开的广告公司,莫非是从那个时候开始我就跟设计这些东西结下了不解之缘…还有一次我们好多人涌去你家赏月的,记得不~我还差点找不到路。

班里还有好多好多亲爱的同学,cody,花花,斐斐,梁洁莹,歌手罗汝轩轩,谭楚雯,半个同乡罗文珺,7号,6号,酷仪,丁丁,何况,大班冰皮。。数不过来了。

一直我们都是被级组长骂被班主任凶,从来都是总被全校批评倒数那种。但是我们DRAW!!起来也是可以hold住全场,震慑大地。那天我也要跑回学校在楼顶上大DRAW!!一声,那感觉肯定爽死了。
忽然想到,能在初中遇到这么好的一群同学该要有多大的福气啊。

doubanclaim0c3b63fa213f5c67

0 Comments