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

asp.net中,64位服务器不能加载c++dll的问题

asp.net的程序中有两个c++的dll(vc6.0编的c++),在本机(32位)运行没有问题,可是将程序发布成网站后,发到windows server 2008(64位)的IIS7后出现加载dll的错误问题。如图:


该图为向DllInvoke输入的动态地址,Train.dll放在bin下

            
           public DllInvoke(String DLLPath)
            {
                hLib = LoadLibrary(DLLPath);
                if (hLib == IntPtr.Zero)
                {
                    throw (new Exception("hLib为空!"));
                }
            }


这个函数中,在本机中hLib能到具体的一个8位的数字(4字节),但发布到服务器后它就为0,会走if语句中,并抛出异常。

我已经将asp.net生成了x86形式的,可是仍然出问题,希望能得到解决办法 --------------------编程问答--------------------
引用 楼主 u011217396 的回复:
asp.net的程序中有两个c++的dll(vc6.0编的c++),在本机(32位)运行没有问题,可是将程序发布成网站后,发到windows server 2008(64位)的IIS7后出现加载dll的错误问题。如图:


该图为向DllInvoke输入的动态地址,Train.dll放在bin下

            
           public DllInvoke(String DLLPath)
            {
                hLib = LoadLibrary(DLLPath);
                if (hLib == IntPtr.Zero)
                {
                    throw (new Exception("hLib为空!"));
                }
            }


这个函数中,在本机中hLib能到具体的一个8位的数字(4字节),但发布到服务器后它就为0,会走if语句中,并抛出异常。

我已经将asp.net生成了x86形式的,可是仍然出问题,希望能得到解决办法


发布到IIS的站点也要设成x86运行模式。要不然会模认为x64,至于怎么设请百度 --------------------编程问答-------------------- 回复二楼
这个已经设置过了 IIS上将兼容32位设置为true了。 --------------------编程问答--------------------
Quote: 引用 1 楼 wyd1520 的回复:


这个已经设置过了 IIS上将兼容32位设置为true了,但是仍然解决不了问题
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,