为什么ppc启动时services.exe不能加载自己写的dll?

clh213 2007-05-23 05:10:53
写了个DLL,放在/windows下,想做成开机自启动服务,在注册表HKEY_LOCAL_MACHINE\Services\中添加表项,启动机子后services.exe就是不会加载这个dll。
但是如果在测试程序中调用RegisterService函数就可以加载dll,启动服务。
不知道为什么,达人解释一下?
...全文
709 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
donghaozheng 2008-12-29
  • 打赏
  • 举报
回复
解决了,确实是签名问题。
donghaozheng 2008-12-26
  • 打赏
  • 举报
回复
顶啊 ,俺也遇到这个问题了,楼主解决了没?
beyondma 2008-07-29
  • 打赏
  • 举报
回复
PPC的确不用签名的,签名只针对SP.不过用C#做服务实在是很奇怪.
zipperman 2008-07-29
  • 打赏
  • 举报
回复
17楼说的不错,一般市面上的PPC都是SHIP版本的,自己写的DLL必须签名才能用.
你在你的DllMain函数里加上log,看能不能调进来,如果根本连这个函数都没进,那不是注册表问题就是你的dll权限不够,必须签名才能使用.
在模拟器上调试程序不需要考虑签名问题.
使用RegisterService成功其实是你的调用程序本身权限已经得到认可,所以它加载的DLL一般默认也是权限允许的.
li_guotao 2008-07-28
  • 打赏
  • 举报
回复
有可能的原因是手机OS版本问题. 因为我们公司很多手机不同的0S版本有的可以在Services中加载进去, 有的却不可以.有的公司手机OS需要针对dll exe and cab进行private key的保护
li_guotao 2008-07-28
  • 打赏
  • 举报
回复
有可能的原因是手机OS版本问题.
windinice 2007-11-01
  • 打赏
  • 举报
回复
记得自己写个inf文件到同一目录下去...
我搞了半天才搞明白
flyhly 2007-09-13
  • 打赏
  • 举报
回复
如果你写的dll输出的函数和微软要求的一致的话;
那么,注意一下自己的签名吧;在ship版本上没有签名是跑不起来的;
retail版本是可以的;自己sign一下吧,最起码也要有一个privilegde的签名
zkcq2004 2007-08-24
  • 打赏
  • 举报
回复
做这个郁闷到死...仿真机每次都能成功.......真机昨天还能成功,今天下午又不能加载了..................真无语了
zkcq2004 2007-08-23
  • 打赏
  • 举报
回复
不关签名的事的
mayflowers 2007-08-23
  • 打赏
  • 举报
回复
需要签名。
在手机刚刚启动的时候services.exe运行在特权模式下。
如果你的代码没有经过签名的话,不能加载。
hifoxking 2007-08-23
  • 打赏
  • 举报
回复
决定用evc做服务了;
拼了...
hifoxking 2007-08-23
  • 打赏
  • 举报
回复
那应该是什么问题?

我估计是用C#写的Dll函数前缀有问题,与services相求的不符;
但我还没有找到如何解决;
下在是我们的程序结构,把你们的也贴上来看;
namespace dll_Services
{
public class dll_Services
{
public void Main()
{
...

}
public dll_Services()
{
....
}
}
}
参考:
Prefix : REG_SZ
• 从服务 DLL 导出函数的前缀(而不是 xxx_Init 中的 xxx,等等)。必须是 3 个符号。

我想这样解决还没有试:
把那个Main 写成XXX_Init,或把所有的函数前缀都改成XXX_;
请高手或做过的回复讨论!!!

zkcq2004 2007-08-22
  • 打赏
  • 举报
回复
我现在能在模拟器上加载,但在真机上无法加载..有会的吗?
zkcq2004 2007-08-21
  • 打赏
  • 举报
回复
这个问题有解决了吗?我也遇到了同样的问题了..期待牛人..
l1w1w1 2007-07-27
  • 打赏
  • 举报
回复
mark一下
Mobile_Writer 2007-07-16
  • 打赏
  • 举报
回复
看看这个连接有没有些有用的信息
http://www.microsoft.com/china/MSDN/library/Mobility/pocketpc/dnppc2k3ppcservices.mspx?mfr=true
Mobile_Writer 2007-07-16
  • 打赏
  • 举报
回复
如果调用了特权函数的话PPC和SP上都要签名。(注:在03上是不用的)。
你这种情况不是签名的问题。
因为你用RegisterService的时候就可以。
我在涉及到注册表的操作的时候遇到过一些问题,给点建议。
一、有的时候虽然修改注册表了,虽然修改成功,重启机器值仍然存在,但不起效果,建议用remote register修改。
二、部署到PPC上的时候可以对projects的属性设置一下。
kain1120 2007-07-14
  • 打赏
  • 举报
回复
楼主大哥解决了吗?
我今天也碰到这个问题
tong20037 2007-05-28
  • 打赏
  • 举报
回复
好像签名只针对smartphone,PPC应用不需要签名吧(期待牛人进一部证实)
我在Smartphone上写服务程序也遇到不能装载的问题,期待牛人的出现。。
加载更多回复(4)

7,655

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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