delphi 编译的程序在window7可以运行,在window2008 R2运行出错

图片说明图片说明

这个是翻译的意思:这个系统上没有采样过滤器。是不是缺少怎么文件之类的

访问了空指针,可能有未初始化的指针变量,获下标越限

如果是根本无法运行, 可以考虑一下是不是权限问题, 比如使用管理员权限运行

另外检查下这里 系统属性->高级->性能->设置->数据执行保护
如果没记错个人版系统默认是仅为windows程序和服务启用, 而server版默认是除选定外所有程序都使用
如果你有系统的管理员权限的话, 改成仅为windows使用 然后重启下系统再运行程序试试

如果仍然不行, 那就加调试输出吧, 看看在哪部分出的异常再找原因

是不是有依赖的库等没有跟你的exe一起发布到window server,同时还要注意所使用的库等是否支持window server的操作系统

补充下, 查了下资料, 你的第一个错误提示显示在这个系统上没有SampleGrabber接口 对应到dspack.pas单元的3246行
SampleGrabber是directX的一个API接口

所以, 我猜测会不会你的server2008没有安装相关的directx SDK??

请问你是不是编译的debug版本直接在目标机器上运行,如果是的话,出现这种问题很正常,重新编译成release版本再在目标机器上运行试试,rease版是不依赖这些SDK的,如果还是出现问题,检查一下你的程序对DirectX版本是否有要求,如果有就在目标机器上装相应的DirectX版本