调用C# COM DLL问题

超越_zww 2013-11-23 09:43:06
C#写的COMDLL函数:
public byte[] dencrypt(byte[] by)
{
uint M1 = 0XFAFAFAFA;
uint IA1 = 0XF7F7F7F7;
uint IC1 = 0XF5F5F5F5;

uint key = 0x000004d2;
int idx = 0;
if (key == 0) key = 1;
byte[] byy = new byte[by.Length];
while (idx < by.Length)
{
key = (uint)IA1 * (key % M1) + IC1;
uint sss = (uint)by[idx];

uint ms = ((key >> 20) & 0xFF);

uint mss = sss ^ ms;
byy[idx] = (byte)mss;

idx++;
}
return byy;
}
=====================================================================
请教各位:
VB调用时,用什么变量对应C#byte类型?
如VB也用byte变量类型,调用时报,DLL使用了VB不支持的数据类型。
...全文
163 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
超越_zww 2013-11-23
  • 打赏
  • 举报
回复
OK,谢谢,我试一下VB代码。 以上代码是一个供应商给个数据包解密算法。 (我是想转成VB代码)
舉杯邀明月 2013-11-23
  • 打赏
  • 举报
回复
你在另一个贴子中,我已经给你把溢出问题解决了。 只是楼主的代码中,干吗总是进行没必要的重复运算呢? 那个 key 在循环过程中,不发生变化,把它的相关运算在循环之前就计算出来呀。 对了,在C#、Java中,数组、字符串这些,好象都是属于 “对象” 类型的。 在 VB中,恐怕没有办法跟它兼容了。 因为不知道它的“对象构造”。
舉杯邀明月 2013-11-23
  • 打赏
  • 举报
回复
没使用C#,也没看过相关的东东。 VB中,数组是用的“安全数组”类型,可能是跟其它编程环境中不一样。

863

社区成员

发帖
与我相关
我的任务
社区描述
VB COM/DCOM/COM+
c++ 技术论坛(原bbs)
社区管理员
  • COM/DCOM/COM+社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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