三九宝宝网宝宝绘画儿童画

父亲节祝福语图片动态链接库

02月03日 编辑 39baobao.com

[教师节祝福语简短]教师节祝福的话 1、园丁,那是辛勤者的心灵。牵挂,那是思念者的心话。祝福,那是祈祷者的倾注。又一年教师节,祝愿你在这个秋天幸福无比,快乐无边,教师节咱也乐乐。 2、年少时不懂的...+阅读

第一步,我先从简单的调用出发,定义了一个简单的函数,该函数仅仅实现一个整数加法求和: LIBEXPORT_API int mySum(int a,int b){ return a+b;} C# 导入定义: public class RefComm { [DllImport("LibEncrypt.dll", EntryPoint=" mySum ", CharSet=CharSet.Auto,CallingConvention=CallingConvention.StdCall)] public static extern int mySum (int a,int b); } 在C#中调用测试: int iSum = RefComm.mySum(,); 运行查看结果iSum为5,调用正确。

第一步试验完成,说明在C#中能够调用自定义的动态链接库函数。 第二步,我定义了字符串操作的函数(简单起见,还是采用前面的函数名),返回结果为字符串: LIBEXPORT_API char *mySum(char *a,char *b){sprintf(b,"%s",a); return a;} C# 导入定义: public class RefComm { [DllImport("LibEncrypt.dll", EntryPoint=" mySum ", CharSet=CharSet.Auto, CallingConvention=CallingConvention.StdCall)] public static extern string mySum (string a, string b); } 在C#中调用测试: string strDest=""; string strTmp= RefComm.mySum("45", strDest); 运行查看结果 strTmp 为"45",但是strDest为空。

我修改动态链接库实现,返回结果为串b: LIBEXPORT_API char *mySum(char *a,char *b){sprintf(b,"%s",a) return b;} 修改 C# 导入定义,将串b修改为ref方式: public class RefComm { [DllImport("LibEncrypt.dll", EntryPoint=" mySum ", CharSet=CharSet.Auto,CallingConvention=CallingConvention.StdCall)] public static extern string mySum (string a, ref string b); } 在C#中再调用测试: string strDest=""; string strTmp= RefComm.mySum("45", ref strDest); 运行查看结果 strTmp 和 strDest 均不对,含不可见字符。

再修改 C# 导入定义,将CharSet从Auto修改为Ansi: public class RefComm { [DllImport("LibEncrypt.dll", EntryPoint=" mySum ", CharSet=CharSet.Ansi,CallingConvention=CallingConvention.StdCall)] public static extern string mySum (string a, string b); } 在C#中再调用测试: string strDest=""; string strTmp= RefComm. mySum("45", ref strDest); 运行查看结果 strTmp 为"45",但是串 strDest 没有赋值。

第二步实现函数返回串,但是在函数出口参数中没能进行输出。再次修改 C# 导入定义,将串b修改为引用(ref): public class RefComm { [DllImport("LibEncrypt.dll", EntryPoint=" mySum ", CharSet=CharSet.Ansi,CallingConvention=CallingConvention.StdCall)] public static extern string mySum (string a, ref string b); } 运行时调用失败,不能继续执行。 第三步,修改动态链接库实现,将b修改为双重指针: LIBEXPORT_API char *mySum(char *a,char **b){sprintf((*b),"%s",a); return *b;} C#导入定义: public class RefComm { [DllImport("LibEncrypt.dll", EntryPoint=" mySum ", CharSet=CharSet.Ansi,CallingConvention=CallingConvention.StdCall)] public static extern string mySum (string a, ref string b); } 在C#中调用测试: string strDest=""; string strTmp= RefComm. mySum("45", ref strDest); 运行查看结果 strTmp 和 strDest 均为"45",调用正确。

第三步实现了函数出口参数正确输出结果。 第四步,修改动态链接库实现,实现整数参数的输出: LIBEXPORT_API int mySum(int a,int b,int *c){ *c=a+b; return *c;} C#导入的定义: public class RefComm { [DllImport("LibEncrypt.dll", EntryPoint=" mySum ", CharSet=CharSet.Ansi,CallingConvention=CallingConvention.StdCall)] public static extern int mySum (int a, int b,ref int c); } 在C#中调用测试: int c=0; int iSum= RefComm. mySum(,, ref c); 运行查看结果iSum 和c均为5,调用正确。

经过以上几个步骤的试验,基本掌握了如何定义动态库函数以及如何在 C# 定义导入,有此基础,很快我实现了变长加密函数在 C# 中的调用,至此目标实现。 三、结论 在 C# 中调用 C++ 编写的动态链接库函数,如果需要出口参数输出,则需要使用指针,对于字符串,则需要使用双重指针,对于 C# 的导入定义,则需要使用引用(ref)定义。 对于函数返回值,C# 导入定义和 C++ 动态库函数声明定义需要保持一致,否则会出现函数调用失败。

定义导入时,一定注意 CharSet 和 CallingConvention 参数,否则导致调用失败或结果异常。运行时,动态链接库放在 C# 程序的目录下即可,我这里是一个 C# 的动态链接库,两个动态链接库就在同一个目录下运行。

以下为关联文档:

简短10字的教师节祝福语有哪些1. 教师节到,快乐与您相伴! 2. 您的恩情比海深,永不忘 3. 师恩重如山,学生不敢忘! 4. 恩师永铭记,师恩久难弃。 5. 桃李芬芳,其乐亦融融。 6. 教诲如春风,师恩似海深。 7. 桃李满天...

关于教师的祝福语老师,您是我生命中的一盏明灯,没有你的指引,我只能继续在黑暗中摸索…… 老师你们是辛勤的园丁,没有你们的培育,就没有我们的今天。我永远不会忘记你们的栽培。 为了我们的幸福,吃...

教师节有什么祝福语 30字左右吧1:这是我们买给您的礼物,谢谢您,老师。没有您无私的奉献,就不会有我们今天的成功。 教师节祝福语短信。 2:我们送您一件小礼物,以表我们对您的感激之情。教师节愉快! 教师节祝福语...

老师简短祝福语有哪些1、您工作在今朝,却建设着祖国的明天;您教学在课堂,成就却在祖国的四面八方。 2、刻在木板上的名字未必不朽,刻在石头上的名字亦未必永垂千古;而刻在我们心灵深处的您的名字,将真...

2020年教师节祝福语有哪些1、十卷诗赋九章勾股,八索文史七纬地理,连同六艺五经,四书三字两雅一心栽树,点点心血育英才泽神州。师生情深,永生不忘! 2、你领着我们向正义方面走,你用你一生精髓教导我们,在那特...

感谢老师的简短祝福语有哪些1、纵然岁月会重新塑造我们的容颜,我永远是您的孩子,敬爱的吾师! 2、燃烧自己,照亮学生;人民教师,教书育人。春风化雨,塑造灵魂;茁壮成长,难忘师恩! 3、今天,我在遥远的地方,把您给予我...

有哪些简短的教师节祝福语1、你有父亲严厉的一面,有母亲慈祥的一面,有朋友知心的一面,感谢您的指引,感谢您的教诲,感谢您的关心,教师节到了,祝您节日快乐! 2、您的胸怀比天高,您的恩情比海深,您的教导永不忘,您...

求母亲节最好的祝福语你迎来了生命的春天,贵子降临;你承载了生命的厚重,爱的结晶;你贡献了人类的繁衍,予以奖励:一条短信似奖状,祝准妈妈节日快乐,将爱继续延续。^o^一丝丝银色的白发,一条条渐深的皱纹,含...

春节祝福语加图片加动态信息28、如果开心快乐是生命中最值得珍惜的事情,我情愿把人间的开心快乐都分享给你;假如幸福健康是人生中最宝贵的东西,我愿意把世上的幸福健康都奉献给你。祝你羊年快乐,万事如意! 2...

推荐阅读
图文推荐