64位WIN7旗舰店版 CGI 初始化ADO错误 GetLastError 126,在命令行下直接调用却问题 在XP下没也问题

时间:2022-09-20 17:26:55
原来是在xp下运行的,现在打算移植到64位win7下
我感觉可能是环境问题,CGI找不到路径,或者系统安全权限导致的加载失败,但是我不知道怎么解决,请大侠帮忙啊~~

下面是精简后的发生问题的代码
   _ConnectionPtr  m_pConnection;

    CoInitialize( NULL );

    HRESULT hr = m_pConnection.CreateInstance( "ADODB.Connection" );

    if( FAILED( hr ) )
    {
        m_last_err = "错误代码" + _I( GetLastError() ); // 这里返回126
        return 1;
    }

6 个解决方案

#1


可能是ado的dll路径不一样?

#2


貌似不是吧,我编译的test.exe 在命令行下可以执行成功,

但是在浏览器上http://127.0.0.1/cgi-bin/test.exe 出现 “错误代码126”

#3


我用的是apache

#4


在64位Windows下:
64位exe和dll在目录c:\windows\sys tem32目录下;
32位exe和dll在目录c:\windows\sys wow64目录下;

#5


我32位 和 64位都编译了,还是一样的问题,手动执行就加载ADO成功

但是 放在apache/cgi-bin/目录下 用浏览器通过apache执行就失败,这是为什么呢?

我查了win7 IIS 的CGI 设置,里面提到一个应用程序池,CGI程序添加进去能在运行时获得系统环境变量,我在想win7是不是对类似CGI这种进程管道通讯程序做了什么安全设置?是不是关闭这个设置就能解决问题呢?

#6


我用iis配置的cgi server服务运行 http://127.0.0.1/cgi-bin/test.exe 加载ado能成功,很可能是win7增加了什么安全策略,在iis中 需要完成两项设置 “应用程序池”、“isapi和cgi限制”,当cgi程序有上千个的时候太麻烦了,我还是比较倾向使用apache,能使用正则表达式、能使用脚本批量处理问题,哪位大侠能帮我解决一下win7怎么用apache运行cgi 加载ado?

#1


可能是ado的dll路径不一样?

#2


貌似不是吧,我编译的test.exe 在命令行下可以执行成功,

但是在浏览器上http://127.0.0.1/cgi-bin/test.exe 出现 “错误代码126”

#3


我用的是apache

#4


在64位Windows下:
64位exe和dll在目录c:\windows\sys tem32目录下;
32位exe和dll在目录c:\windows\sys wow64目录下;

#5


我32位 和 64位都编译了,还是一样的问题,手动执行就加载ADO成功

但是 放在apache/cgi-bin/目录下 用浏览器通过apache执行就失败,这是为什么呢?

我查了win7 IIS 的CGI 设置,里面提到一个应用程序池,CGI程序添加进去能在运行时获得系统环境变量,我在想win7是不是对类似CGI这种进程管道通讯程序做了什么安全设置?是不是关闭这个设置就能解决问题呢?

#6


我用iis配置的cgi server服务运行 http://127.0.0.1/cgi-bin/test.exe 加载ado能成功,很可能是win7增加了什么安全策略,在iis中 需要完成两项设置 “应用程序池”、“isapi和cgi限制”,当cgi程序有上千个的时候太麻烦了,我还是比较倾向使用apache,能使用正则表达式、能使用脚本批量处理问题,哪位大侠能帮我解决一下win7怎么用apache运行cgi 加载ado?