首页 新闻 会员 周边 捐助

.net中托管非托管Dll,发布到服务器上找不到dll文件

0
悬赏园豆:5 [待解决问题]

c#中调用腾讯云IM云通信生成签名,应用非托管sigcheck.dll文件,本地运行没问题,发布到服务器中提示找不到dll文件;

public const string DllPath = @"C:\WINDOWS\system32\sigcheck.dll";       // 32 位

class sigcheck
{
[DllImport(dllpath.DllPath, EntryPoint = "tls_gen_sig", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
public extern static int tls_gen_sig(
UInt32 expire,
string appid3rd,
UInt32 sdkappid,
string identifier,
UInt32 acctype,
StringBuilder sig,
UInt32 sig_buff_len,
string pri_key,
UInt32 pri_key_len,
StringBuilder err_msg,
UInt32 err_msg_buff_len
);

[DllImport(dllpath.DllPath, EntryPoint = "tls_vri_sig", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
public extern static int tls_vri_sig(
string sig,
string pub_key,
UInt32 pub_key_len,
UInt32 acctype,
string appid3rd,
UInt32 sdkappid,
string identifier,
StringBuilder err_msg,
UInt32 err_msg_buff_len
);

[DllImport(dllpath.DllPath, EntryPoint = "tls_gen_sig_ex", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
public extern static int tls_gen_sig_ex(
UInt32 sdkappid,
string identifier,
StringBuilder sig,
UInt32 sig_buff_len,
string pri_key,
UInt32 pri_key_len,
StringBuilder err_msg,
UInt32 err_msg_buff_len
);

[DllImport(dllpath.DllPath, EntryPoint = "tls_vri_sig_ex", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
public extern static int tls_vri_sig_ex(
string sig,
string pub_key,
UInt32 pub_key_len,
UInt32 sdkappid,
string identifier,
ref UInt32 expire_time,
ref UInt32 init_time,
StringBuilder err_msg,
UInt32 err_msg_buff_len
);
}

网上说的放到system32目录下,我也放了;dll文件用到其他dll文件我看system32目录下也有,但是好多试了都不管用,实在不知怎么办了

清&清的主页 清&清 | 初学一级 | 园豆:199
提问于:2018-04-19 13:54
< >
分享
所有回答(1)
0

都放到应用程序的bin文件夹试试

dudu | 园豆:29759 (高人七级) | 2018-04-19 14:07

放到bin文件夹试了也不行

支持(0) 反对(0) 清&清 | 园豆:199 (初学一级) | 2018-04-19 14:08

@清&清: 本地运行的机器与服务器的系统是32还是64位?.NET程序编译的目标平台是什么?

支持(0) 反对(0) dudu | 园豆:29759 (高人七级) | 2018-04-19 14:49

@清&清: 另外,腾讯云不是提供了.NET的SDK吗?为什么不直接用?

支持(0) 反对(0) dudu | 园豆:29759 (高人七级) | 2018-04-19 14:50

@dudu: 我没在腾讯云上找到她提供的.NET的sdk呀,我问客服说没有,我就在上面下载个demo,里面有个签名样例,我就这样拿来用一下,你知道.net在哪儿提供的sdk吗?

支持(0) 反对(0) 清&清 | 园豆:199 (初学一级) | 2018-04-19 14:55

@清&清: 腾讯云的短信服务是有.NET SDK的

支持(0) 反对(0) dudu | 园豆:29759 (高人七级) | 2018-04-19 15:03

@dudu: 我用的是腾讯云IM云通信,生成签名时用的sigcheck.dll

支持(0) 反对(0) 清&清 | 园豆:199 (初学一级) | 2018-04-19 15:05

@清&清: 继续解决这个问题吧,.NET程序编译的目标平台是什么?

支持(0) 反对(0) dudu | 园豆:29759 (高人七级) | 2018-04-19 15:14

@dudu: windows servers 2003

支持(0) 反对(0) 清&清 | 园豆:199 (初学一级) | 2018-04-19 15:15

@清&清: 32位还是64位?

支持(0) 反对(0) dudu | 园豆:29759 (高人七级) | 2018-04-19 15:20

@dudu: 32的吧

支持(0) 反对(0) 清&清 | 园豆:199 (初学一级) | 2018-04-19 15:50

@清&清: 可以试试把.NET程序编译为32位的(x86)

支持(0) 反对(0) dudu | 园豆:29759 (高人七级) | 2018-04-19 15:55

@dudu: 其他的都没问题,就这次新加内容用到这个非托管dll文件,开始找不到

支持(0) 反对(0) 清&清 | 园豆:199 (初学一级) | 2018-04-19 16:28

@dudu: 发布成32的位的也不行

支持(0) 反对(0) 清&清 | 园豆:199 (初学一级) | 2018-04-21 17:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册