12 个解决方案
#1
UP先
#2
up
#3
我又测试过了,用atl生成一个空的服务框架,什么也不做(不添加任何代码),然后就编译,在xp下启动还是出现1053错误,大家帮帮我啊!!!!
谢谢mymyal123的UP
谢谢mymyal123的UP
#4
不会吧?没有做过,你用windows console application自己写一个服务看看?不用atl的。
#5
api写,多麻烦啊,再说atl会有什么错呢,只是在winxp下有错误哦,在2k上又没什么问题。
#6
看不出来毛病,在服务程序的各个地方输出调试信息到log文件,看看问题具体出在什么地方。
#7
跟登陆用户有关吗?
to:hyamw ATL做的框架,没加什么代码,会跟什么有关系?难道是编译环竟有关?
to:hyamw ATL做的框架,没加什么代码,会跟什么有关系?难道是编译环竟有关?
#8
发现了一个问题,注册没有正确,我在win2000中把其中一个与该服务相关的注册表信息导出,然后在xp里导入,就可以正常启动了,可是socket收不到什么通信,不知为何。
如何注册服务呢?请给正解...
我是如下注册和启动的。
bat文件内容
sc create myserver binpath= c:\windows\Sc\myserver.exe
sc config myservers tart= auto
sc start myserver
请问有什么不足吗?
如何注册服务呢?请给正解...
我是如下注册和启动的。
bat文件内容
sc create myserver binpath= c:\windows\Sc\myserver.exe
sc config myservers tart= auto
sc start myserver
请问有什么不足吗?
#9
服务的API就那么几个 很简单
bool SvcIns()
{
SC_HANDLE hSC = OpenSCManager(NULL, NULL, GENERIC_WRITE);
UINT nCode = 0;
if (! hSC)
{
switch (GetLastError())
{
case ERROR_ACCESS_DENIED:
nCode = 2;
break;
case ERROR_DATABASE_DOES_NOT_EXIST:
nCode = 3;
break;
case ERROR_INVALID_PARAMETER:
nCode = 4;
}
return false;
}
SC_HANDLE hSRV = CreateService(hSC,
_T("Svc_Name"),//服务名
_T("Svc_Display_Name"),//服务的友好名字
SERVICE_ALL_ACCESS,
SERVICE_WIN32_OWN_PROCESS,
SERVICE_AUTO_START,
SERVICE_ERROR_IGNORE,
_T("C:\\svc.exe"),
NULL,
NULL,
NULL,
NULL,
NULL);
if (! hSRV)
{
switch (GetLastError())
{
case ERROR_ACCESS_DENIED:
nCode = 6;
break;
case ERROR_CIRCULAR_DEPENDENCY: //8
nCode = 8;
break;
case ERROR_DUP_NAME:
nCode = 9;
break;
case ERROR_INVALID_HANDLE:
nCode = 10;
break;
case ERROR_INVALID_NAME:
nCode = 11;
break;
case ERROR_INVALID_PARAMETER:
nCode = 12;
break;
case ERROR_INVALID_SERVICE_ACCOUNT:
nCode = 13;
break;
case ERROR_SERVICE_EXISTS:
nCode = 14;
default:
nCode = 24;
}
return false;
}
else
{
if (! StartService(hSRV, 0, NULL))
{
puts("Error to start service");
}
CloseServiceHandle(hSRV);
}
CloseServiceHandle( hSC );
return (0 == nCode);
}
bool SvcIns()
{
SC_HANDLE hSC = OpenSCManager(NULL, NULL, GENERIC_WRITE);
UINT nCode = 0;
if (! hSC)
{
switch (GetLastError())
{
case ERROR_ACCESS_DENIED:
nCode = 2;
break;
case ERROR_DATABASE_DOES_NOT_EXIST:
nCode = 3;
break;
case ERROR_INVALID_PARAMETER:
nCode = 4;
}
return false;
}
SC_HANDLE hSRV = CreateService(hSC,
_T("Svc_Name"),//服务名
_T("Svc_Display_Name"),//服务的友好名字
SERVICE_ALL_ACCESS,
SERVICE_WIN32_OWN_PROCESS,
SERVICE_AUTO_START,
SERVICE_ERROR_IGNORE,
_T("C:\\svc.exe"),
NULL,
NULL,
NULL,
NULL,
NULL);
if (! hSRV)
{
switch (GetLastError())
{
case ERROR_ACCESS_DENIED:
nCode = 6;
break;
case ERROR_CIRCULAR_DEPENDENCY: //8
nCode = 8;
break;
case ERROR_DUP_NAME:
nCode = 9;
break;
case ERROR_INVALID_HANDLE:
nCode = 10;
break;
case ERROR_INVALID_NAME:
nCode = 11;
break;
case ERROR_INVALID_PARAMETER:
nCode = 12;
break;
case ERROR_INVALID_SERVICE_ACCOUNT:
nCode = 13;
break;
case ERROR_SERVICE_EXISTS:
nCode = 14;
default:
nCode = 24;
}
return false;
}
else
{
if (! StartService(hSRV, 0, NULL))
{
puts("Error to start service");
}
CloseServiceHandle(hSRV);
}
CloseServiceHandle( hSC );
return (0 == nCode);
}
#10
ATL的service服务程序自己就带注册功能
XXX.exe -Service
看看下面这篇文章:
http://www.vckbase.com/document/viewdoc/?id=1176
socket通讯不成功,你得看看socket创建是否成功了。
XXX.exe -Service
看看下面这篇文章:
http://www.vckbase.com/document/viewdoc/?id=1176
socket通讯不成功,你得看看socket创建是否成功了。
#11
谢谢大家,已经成功。
但是注册还是不行,只能用导入注册表的方法。我会再检查的。
给分了。
但是注册还是不行,只能用导入注册表的方法。我会再检查的。
给分了。
#12
注册怎么不行 返回代码是多少 我的是可以注册的 把你的代码贴出来看看
#1
UP先
#2
up
#3
我又测试过了,用atl生成一个空的服务框架,什么也不做(不添加任何代码),然后就编译,在xp下启动还是出现1053错误,大家帮帮我啊!!!!
谢谢mymyal123的UP
谢谢mymyal123的UP
#4
不会吧?没有做过,你用windows console application自己写一个服务看看?不用atl的。
#5
api写,多麻烦啊,再说atl会有什么错呢,只是在winxp下有错误哦,在2k上又没什么问题。
#6
看不出来毛病,在服务程序的各个地方输出调试信息到log文件,看看问题具体出在什么地方。
#7
跟登陆用户有关吗?
to:hyamw ATL做的框架,没加什么代码,会跟什么有关系?难道是编译环竟有关?
to:hyamw ATL做的框架,没加什么代码,会跟什么有关系?难道是编译环竟有关?
#8
发现了一个问题,注册没有正确,我在win2000中把其中一个与该服务相关的注册表信息导出,然后在xp里导入,就可以正常启动了,可是socket收不到什么通信,不知为何。
如何注册服务呢?请给正解...
我是如下注册和启动的。
bat文件内容
sc create myserver binpath= c:\windows\Sc\myserver.exe
sc config myservers tart= auto
sc start myserver
请问有什么不足吗?
如何注册服务呢?请给正解...
我是如下注册和启动的。
bat文件内容
sc create myserver binpath= c:\windows\Sc\myserver.exe
sc config myservers tart= auto
sc start myserver
请问有什么不足吗?
#9
服务的API就那么几个 很简单
bool SvcIns()
{
SC_HANDLE hSC = OpenSCManager(NULL, NULL, GENERIC_WRITE);
UINT nCode = 0;
if (! hSC)
{
switch (GetLastError())
{
case ERROR_ACCESS_DENIED:
nCode = 2;
break;
case ERROR_DATABASE_DOES_NOT_EXIST:
nCode = 3;
break;
case ERROR_INVALID_PARAMETER:
nCode = 4;
}
return false;
}
SC_HANDLE hSRV = CreateService(hSC,
_T("Svc_Name"),//服务名
_T("Svc_Display_Name"),//服务的友好名字
SERVICE_ALL_ACCESS,
SERVICE_WIN32_OWN_PROCESS,
SERVICE_AUTO_START,
SERVICE_ERROR_IGNORE,
_T("C:\\svc.exe"),
NULL,
NULL,
NULL,
NULL,
NULL);
if (! hSRV)
{
switch (GetLastError())
{
case ERROR_ACCESS_DENIED:
nCode = 6;
break;
case ERROR_CIRCULAR_DEPENDENCY: //8
nCode = 8;
break;
case ERROR_DUP_NAME:
nCode = 9;
break;
case ERROR_INVALID_HANDLE:
nCode = 10;
break;
case ERROR_INVALID_NAME:
nCode = 11;
break;
case ERROR_INVALID_PARAMETER:
nCode = 12;
break;
case ERROR_INVALID_SERVICE_ACCOUNT:
nCode = 13;
break;
case ERROR_SERVICE_EXISTS:
nCode = 14;
default:
nCode = 24;
}
return false;
}
else
{
if (! StartService(hSRV, 0, NULL))
{
puts("Error to start service");
}
CloseServiceHandle(hSRV);
}
CloseServiceHandle( hSC );
return (0 == nCode);
}
bool SvcIns()
{
SC_HANDLE hSC = OpenSCManager(NULL, NULL, GENERIC_WRITE);
UINT nCode = 0;
if (! hSC)
{
switch (GetLastError())
{
case ERROR_ACCESS_DENIED:
nCode = 2;
break;
case ERROR_DATABASE_DOES_NOT_EXIST:
nCode = 3;
break;
case ERROR_INVALID_PARAMETER:
nCode = 4;
}
return false;
}
SC_HANDLE hSRV = CreateService(hSC,
_T("Svc_Name"),//服务名
_T("Svc_Display_Name"),//服务的友好名字
SERVICE_ALL_ACCESS,
SERVICE_WIN32_OWN_PROCESS,
SERVICE_AUTO_START,
SERVICE_ERROR_IGNORE,
_T("C:\\svc.exe"),
NULL,
NULL,
NULL,
NULL,
NULL);
if (! hSRV)
{
switch (GetLastError())
{
case ERROR_ACCESS_DENIED:
nCode = 6;
break;
case ERROR_CIRCULAR_DEPENDENCY: //8
nCode = 8;
break;
case ERROR_DUP_NAME:
nCode = 9;
break;
case ERROR_INVALID_HANDLE:
nCode = 10;
break;
case ERROR_INVALID_NAME:
nCode = 11;
break;
case ERROR_INVALID_PARAMETER:
nCode = 12;
break;
case ERROR_INVALID_SERVICE_ACCOUNT:
nCode = 13;
break;
case ERROR_SERVICE_EXISTS:
nCode = 14;
default:
nCode = 24;
}
return false;
}
else
{
if (! StartService(hSRV, 0, NULL))
{
puts("Error to start service");
}
CloseServiceHandle(hSRV);
}
CloseServiceHandle( hSC );
return (0 == nCode);
}
#10
ATL的service服务程序自己就带注册功能
XXX.exe -Service
看看下面这篇文章:
http://www.vckbase.com/document/viewdoc/?id=1176
socket通讯不成功,你得看看socket创建是否成功了。
XXX.exe -Service
看看下面这篇文章:
http://www.vckbase.com/document/viewdoc/?id=1176
socket通讯不成功,你得看看socket创建是否成功了。
#11
谢谢大家,已经成功。
但是注册还是不行,只能用导入注册表的方法。我会再检查的。
给分了。
但是注册还是不行,只能用导入注册表的方法。我会再检查的。
给分了。
#12
注册怎么不行 返回代码是多少 我的是可以注册的 把你的代码贴出来看看