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

dragonvii 2014-05-07 11:42:22
原来是在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;
}
...全文
216 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dragonvii 2014-05-08
  • 打赏
  • 举报
回复
我用iis配置的cgi server服务运行 http://127.0.0.1/cgi-bin/test.exe 加载ado能成功,很可能是win7增加了什么安全策略,在iis中 需要完成两项设置 “应用程序池”、“isapi和cgi限制”,当cgi程序有上千个的时候太麻烦了,我还是比较倾向使用apache,能使用正则表达式、能使用脚本批量处理问题,哪位大侠能帮我解决一下win7怎么用apache运行cgi 加载ado?
enic 2014-05-07
  • 打赏
  • 举报
回复
可能是ado的dll路径不一样?
dragonvii 2014-05-07
  • 打赏
  • 举报
回复
我32位 和 64位都编译了,还是一样的问题,手动执行就加载ADO成功 但是 放在apache/cgi-bin/目录下 用浏览器通过apache执行就失败,这是为什么呢? 我查了win7 IIS 的CGI 设置,里面提到一个应用程序池,CGI程序添加进去能在运行时获得系统环境变量,我在想win7是不是对类似CGI这种进程管道通讯程序做了什么安全设置?是不是关闭这个设置就能解决问题呢?
赵4老师 2014-05-07
  • 打赏
  • 举报
回复
在64位Windows下: 64位exe和dll在目录c:\windows\system32目录下; 32位exe和dll在目录c:\windows\syswow64目录下;
dragonvii 2014-05-07
  • 打赏
  • 举报
回复
我用的是apache
dragonvii 2014-05-07
  • 打赏
  • 举报
回复
貌似不是吧,我编译的test.exe 在命令行下可以执行成功, 但是在浏览器上http://127.0.0.1/cgi-bin/test.exe 出现 “错误代码126”

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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