当前位置:编程学习 > C#/ASP.NET >>

[非高手莫入]64位WIN7下,DllImport同一DLL在CS正常执行BS下报错找不到指定的模块(VS2010)问题

--------------------编程问答-------------------- 膜拜楼主标题,顺便路过 不好意思 不是高手 进来观摩一下能难住高手的问题 --------------------编程问答-------------------- 你在项目里引用这个dll ,然后导入命名空间,再试试 --------------------编程问答-------------------- 项目里无法引用这个dll,提示找不到入口之类的,供应商证实说不需要注册。他们也有各种语言的demo,我最纠结的就是dllimport同一dll,winform程序可以正常执行;而webform却抛异常。。。
引用 2 楼 lovesheng1212 的回复:
你在项目里引用这个dll ,然后导入命名空间,再试试
--------------------编程问答-------------------- 那你看看他们asp.net的Demo。看看和你自己写的有什么不同呗 --------------------编程问答-------------------- 这中错误一般都是dll的位置没放正确 
lz在检查下 --------------------编程问答-------------------- 拷贝到bin下,添加引用,然后试试 --------------------编程问答-------------------- 你可以参考下这个文章
http://www.webjx.com/htmldata/2007-10-06/1191656093.html

--------------------编程问答-------------------- 代码改为:
    // 导入
    [DllImport("EUCPComm.dll",EntryPoint="SendSMS")]
    public static extern int SendSMS(string sn,string mn,string ct,string priority);
    // 发送短信
    private void button3_Click(object sender, System.EventArgs e)
    {
        //即时发送      这里是软件序列号    手机号       短信内容     优先级
        int result=SendSMS(textBox1.Text,textBox6.Text,textBox5.Text,textBox16.Text);
    }
    
然后将dll拷到运行目录下试试 --------------------编程问答-------------------- --------------------编程问答-------------------- 拷贝到当前目录下,在添加引用dll
还要在using API;提供的api --------------------编程问答-------------------- 我也碰到了类似的问题,请问楼主是否是否已经解决?方便的话共享一下解决方案。 --------------------编程问答-------------------- BS结构下访问文件都是虚拟路径形式,你要确保你的C:\Windows\System32\EUCPComm.dll能够被IIS访问到。

比如你可以吧EUCPComm.dll复制到你的项目中,发布的时候发布到网站中,在DllImport中以虚拟路径的形式指定dll位置,例如
[DllImport(@"~/WebModel/Dll/EUCPComm.dll",EntryPoint="SendSMS")]
--------------------编程问答--------------------
引用 12 楼  的回复:
[DllImport(@"~/WebModel/Dll/EUCPComm.dll",EntryPoint="SendSM……


哦,错了,
Server.MapPath("~/WebModel/Dll/EUCPComm.dll")...获取物理路径 --------------------编程问答-------------------- [DllImport("EUCPComm.dll",EntryPoint="SendSMS")]
在BIN目录及C:\Windows\System32目录加上这个DLL,都没用
win server 2003下正常.
win 7及 win server 2008 iis下出错,winform, win service下都正常
猜测是权限问题,但是给相关目录加了权限还是没用。 --------------------编程问答-------------------- 路径写死,比如E:\EUCPComm.dll
也还是报错,而且出现的是 未处理的WIN32异常。
也不知道具体是什么错误,Try Catch也捕捉不到。 --------------------编程问答-------------------- 可以试试把网站对应的应用程序池的执行选项设为本地系统。 --------------------编程问答-------------------- 请问您的问题解决了吗?我也遇到了同样的问题啊!如果解决了请给个信息行吗?谢谢啦!lyzxing@126.com --------------------编程问答-------------------- 看看示例程序,使用using引用命名空间就行了,这两天我出刚用了这个DLL库. --------------------编程问答-------------------- 解决了吗?这边也遇到了一样的问题。。
xp、server c/s 或b/s 全是好用的。在win7下面只能用c/s ,b/s用不了。 --------------------编程问答-------------------- 学习学习啦 --------------------编程问答-------------------- 给分 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 我也遇到了一样的问题,是这么解决的:
如果是在32位Win7下,EUCPComm.dll放在system32下,是没问题的
但是在64位Win7下,EUCPComm.dll放在system32下不行,我尝试放在system下面,结果就OK了
不知道对你有木有帮助 --------------------编程问答-------------------- 猜测是权限问题
拷贝到项目目录试一下 --------------------编程问答-------------------- 不是权限问题。 --------------------编程问答-------------------- 放在system32和system下都不行
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,