关于DllImport的问题

zenggao 2009-09-08 05:33:15
[DllImport("crypt.dll")]
public static extern int DES(string key,int Encrypt,out string output,string input,int inputlength);

问:以上写法有问题吗?我怎样才能调用DLL中的DES方法,希望能给个调用的完整例子.

int WINAPI DES (
IN unsigned char *key,
IN int encrypt,
OUT unsigned char *output,
IN unsigned char *input,
IN unsigned int inputLen
);

参数说明:
key DES 密钥,共 8 字节。

encrypt 加解密标识。等于 0 表示解密,1 表示加密。0 对应 SES 函数_des_dec,1 对应 _des_enc。

output 生成的加密/解密结果,输出缓冲长度必须大于或者等于输入数据长度。

input 输入的待加解密数据。

inputLen 输入的待加解密数据长度
...全文
138 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
mjp1234airen4385 2009-09-09
  • 打赏
  • 举报
回复
以前的一个项目里用到的DES算法,和你的基本相同。
[DllImport("desProc.dll", CharSet = CharSet.Unicode)]
public static extern int DesAnd3Des(byte[] key, int nKeyLen, byte[] input, int nLen, byte[] random, int bRandom, byte[] MAC);

zenggao 2009-09-09
  • 打赏
  • 举报
回复
没有错误信息,返回的是空值.密钥是12345678,明文是abcdefgh, 哪位大虾给我一个调用的方法.
DLL的下载地址是http://221.4.216.26/crypt.rar
TTOJJ 2009-09-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zenggao 的回复:]
什么调用啊,我试了不行啊.是不是调用方法错了.谁能帮我写个调用的方法?
[/Quote]

直接调用就可以拉啊??把错误信息贴出来
zenggao 2009-09-08
  • 打赏
  • 举报
回复
什么调用啊,我试了不行啊.是不是调用方法错了.谁能帮我写个调用的方法?
TTOJJ 2009-09-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zgke 的回复:]
[DllImport("crypt.dll")]
public static extern int DES(StringBuilder key,int Encrypt,out StringBuilder output,StringBuilder input,int inputlength);


这样看看
[/Quote]

问题应该解决拉
zenggao 2009-09-08
  • 打赏
  • 举报
回复
什么调用啊,我试了不行啊.是不是调用方法错了.
wuyq11 2009-09-08
  • 打赏
  • 举报
回复
unsigned char* data使用StringBuilder
zgke 2009-09-08
  • 打赏
  • 举报
回复
[DllImport("crypt.dll")]
public static extern int DES(StringBuilder key,int Encrypt,out StringBuilder output,StringBuilder input,int inputlength);


这样看看
#region 导入API函数 [DllImport("avicap32.dll")]//包含了执行视频捕获的函数,它给AVI文件I/O和视频、音频设备驱动程序提供一个高级接口 public static extern IntPtr capCreateCaptureWindow(string lpszWindowName, int dwStyle, int x, int y, int nWidth, int nHeight, IntPtr hwndParent, int nID); /************参数说明************* * * 函数:capCreateCaptureWindow * * lpszWindowName:标识窗口的名称 * dwStyle:标识窗口风格 * x、y:标识窗口的左上角坐标 * nWidth、nHeight:标识窗口的宽度和高度 * hWnd:标识父窗口句柄 * nID:标识窗口ID * * 返回值:视频捕捉窗口句柄。 * ********************************/ [DllImport("AVICAP32.dll", CharSet = CharSet.Unicode)] public static extern bool capGetDriverDescription(int wDriverIndex, StringBuilder lpszName, int cbName, StringBuilder lpszVer, int cbVer); [DllImport("User32.dll")] public static extern bool SendMessage(IntPtr hWnd, int wMsg, bool wParam, int lParam); [DllImport("User32.dll")] public static extern bool SendMessage(IntPtr hWnd, int wMsg, short wParam, int lParam); [DllImport("User32.dll")] public static extern bool SendMessage(IntPtr hWnd, int wMsg, int wParam, int lParam); [DllImport("User32.dll")] public static extern bool SendMessage(IntPtr hWnd, int wMsg, short wParam, FrameEventHandler lParam); [DllImport("User32.dll")] public static extern bool SendMessage(IntPtr hWnd, int wMsg, int wParam, ref BITMAPINFO lParam); [DllImport("User32.dll")] public static extern bool SendMessage(IntPtr hWnd, int wMsg, int wParam, ref CAPDRIVERCAPS lParam); [DllImport("User32.dll")] public static extern bool SendMessage(IntPtr hWnd, int wMsg, int wParam, ref CAPTUREPARMS lParam); [DllImport("User32.dll")] public static extern bool SendMessage(IntPtr hWnd, int wMsg, int wParam, ref CAPSTATUS lParam); [DllImport("User32.dll")] public static extern int SetWindowPos(IntPtr hWnd, int hWndInsertAfter, int x, int y, int cx, int cy, int wFlags); [DllImport("avicap32.dll")] public static extern int capGetVideoFormat(IntPtr hWnd, IntPtr psVideoFormat, int wSize); #endregion

111,110

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧