c# 调用c动态dll

a474841314 2011-07-21 01:35:17
请问下面调用正确吗?
为什么我的程序调用后还是出现SSL初始化错误
SSLLib.dll
放在了bin下



int OPENSSL_init(intmode)







[DllImport("SSLLib.dll",CallingConvention=CallingConvention.Cdecl,EntryPoint="OPENSSL_init")]]
public static extern int OPENSSL_init(int mode);



函数调用
public void test()
{
//为什么这里初始化会出错?
int i= OPENSSL_init(0);
}





1楼 bdmh回复:是什么调用约定啊,stdcall还是cdecl,c默认是cdecl



答: 是 Cdecl.. 急死我了。 应该本地可以调用阿 为什么会这样 。 1点多就要测试了。


2楼 evilant回复:SSL初始化错误,是不是找不到SSLib.dll?


答:
SSLLib.dll放在程序bin->DeBug下了!

3楼 guliang21 回复 :放到system32下试试

答:放了 。还是一样

4楼 lizhibin11 大侠:回复:CallingConvention=CallingConvention.Cdecl把这个去掉
答: 去掉还是一样

5楼 isjoe回复:是web项目吗?
答: winfrom




...全文
184 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdl2005lyx 2011-07-21
  • 打赏
  • 举报
回复
LZ,你先用try{}catch{},调试看看,把异常贴出来
流浪的青春 2011-07-21
  • 打赏
  • 举报
回复
直接在工程里面引用一下就可以吧。
a474841314 2011-07-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 cdcjk 的回复:]
EntryPoint也去
[/Quote]

去掉了, dll文件放在bin下dug和exe同级
cdcjk 2011-07-21
  • 打赏
  • 举报
回复
EntryPoint也去
amen2100 2011-07-21
  • 打赏
  • 举报
回复
把EntryPoint也去掉呢
a474841314 2011-07-21
  • 打赏
  • 举报
回复
OPENSSL_init(0);
返回-1;
1成功
-1or 0失败

110,536

社区成员

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

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

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