c#调用c语言的dll,求大神

问题描述

用c语言编写了一个des加密算法,并生成了dll,想用c#做个窗口调用C语言的dll中voidencrypt(chardata[64],charkey[64],charcipher[64])这个函数,该怎么办?已经试过各种,困难重重啊!求助!!!

解决方案

解决方案二:
引用楼主qq_15397417的回复:

用c语言编写了一个des加密算法,并生成了dll,想用c#做个窗口调用C语言的dll中voidencrypt(chardata[64],charkey[64],charcipher[64])这个函数,该怎么办?已经试过各种,困难重重啊!求助!!!

[DllImport("C++函数所在的.dll",EntryPoint="encrypt")]publicstaticexternvoidencrypt();//调用使用String或者StringBuilder类型的参数encrypt(string,string,string);//或者encrypt(StringBuilder,StringBuilder,StringBuilder);

解决方案三:
[DllImport("C.dll")]publicstaticexternvoidencrypt(byte[]bytes1,byte[]bytes2,byte[]bytes3);调用:byte[]bytes1=newbyte[64];byte[]bytes2=newbyte[64];byte[]bytes3=newbyte[64];encrypt(bytes1,bytes2,bytes3);data=Encoding.UTF8.GetString(bytes1);key=Encoding.UTF8.GetString(bytes2);cipher=Encoding.UTF8.GetString(bytes3);//注意去空格,如果byte[]没有64位,那么末尾会有空格

时间: 2024-10-29 00:11:02

c#调用c语言的dll,求大神的相关文章

rvm-相关向量机(RVM)的C语言算法,求大神帮忙?

问题描述 相关向量机(RVM)的C语言算法,求大神帮忙? 7C 相关向量机(RVM)的C语言算法实现,不知哪位大神能给与指导-- 解决方案 这东西用C写起来可复杂了,一般是matlab写好了,做成dll给C调用 参考下:http://download.csdn.net/detail/daleloogn/7143069

mfc-MFC中调用C#的疑问,求大神帮助

问题描述 MFC中调用C#的疑问,求大神帮助 在MFC中通过Using "A.dll"把某个用C#编写的动态库加载到MFC中之后,怎么调用该动态链接库中某个类的函数? 我在MFC的函数体外中定义某个类的对象,总是报错: 但是如果我在其中一个函数中定义该类的对象,在其他的函数体中又无法使用该对象,请问该如何处理? 求大神帮忙. 解决方案 65恶恶就会发现个超级美女f'x'gu'y'd'x'r'f 解决方案二: 需要你将C#中函数的参数转化为C++中对应的类型,就是将函数声明重写,然后再调

c语言-麻烦看看C语言的问题,求大神

问题描述 麻烦看看C语言的问题,求大神 读入一个整数,统计并输出该数中2的个数?要求定义并调用函数countdigit(number,digit),它的功能是统计整数number 中数字digit 的个数?例如,countdigit(10090,0) 的返回值是3? int countdigit (int number,int digit){ int d,n,count; do{ n=number; d=n%10; n=n/10; if (d==digit) count ++;}while (n

Linux下网络编程read,write问题(C语言),求大神指点阿!!!

问题描述 Linux下网络编程read,write问题(C语言),求大神指点阿!!! zuijzuj.最近学习socket编程的时候调试代码出现了一些问题,求大神们指导阿!!!我要实现的功能是客户端输入两个操作数和一个运算符,在服务端进行运算再把结果返回到客户端.现在的bug是客户端输入第一个操作数的时候没问题,输入运算符的时候客户端可以通过write函数写入但是服务端读出的结果不是输入的运算符,客户端输入第二个操作数的时候write函数无法写入,这是缓冲区满了吗?缓冲区大小不是由内核自己决定的

c语言-C语言小白问题求大神指教

问题描述 C语言小白问题求大神指教 #include #include unsigned fun(int w) { int a; int i; i=1; a=w; while(a==0) { a=a/10; i++; } w=w%pow(10,i); return w; } unsigned main() { int w; printf("please enter a number:n"); scanf("%d",&w); printf("the

c 语言的问题求大神的指导!

问题描述 c 语言的问题求大神的指导! #include""stdio.h""#include""stdlib.h""void main(){ int guess=0problemch; ch=getchar(); do {scanf(""%d""&guess); problem=(int)(rand()%100)+1; for(;guess!=problem;) {if(gue

输出-C语言完全数问题,求大神直接给程序

问题描述 C语言完全数问题,求大神直接给程序 输入整数n,判断n是否是完全数,并输出结果 输入N,输出1~N之间的所有完全数 解决方案 #include int main() { int n,N,i,j,sum; printf("输入整数n,判断n是否是完全数:n"); scanf("%d",&n); sum = 0; for (i = 2;i < n;i++) { if (n%i == 0)sum += i; } if (n==sum) printf

安卓-调用系统设置岀错,求大神解决

问题描述 调用系统设置岀错,求大神解决 Intent mIntent = new Intent(); ComponentName comp = new ComponentName("com.android.settings", "com.android.settings.TextToSpeechSettings"); mIntent.setComponent(comp); mIntent.setAction("android.intent.action.V

c语言问题-小白c语言求教,求大神解答

问题描述 小白c语言求教,求大神解答 #include int main(void) { int years,days; years=21; days=years*365; printf(" The years is %d. The days are %d. ".years,days); Return 0; } 程序无法运行,提示错误.求大神解答.小弟在这里先谢谢啦. 解决方案 printf(" The years is %d. The days are %d. "

c语言-C语言入门问题求大神指点

问题描述 C语言入门问题求大神指点 #include #define TABINC 8 //tab increment size //replace strings of blanks with tabs and blanksint main(void){ int c nb nt pos; nb = 0; //number of blanksnt = 0; //number of tabsfor (pos = 1; (c = getchar()) != EOF; pos++){ if (c ==