递归火山软件开发平台
标题:
【ServiceDLL】【开源】可以编译Windows 服务DLL了
[打印本页]
作者:
urenai
时间:
13 小时前
标题:
【ServiceDLL】【开源】可以编译Windows 服务DLL了
本帖最后由 urenai 于 2025-11-27 00:49 编辑
(, 下载次数: 1)
上传
点击文件名下载附件
(, 下载次数: 0)
上传
点击文件名下载附件
(, 下载次数: 0)
上传
点击文件名下载附件
希望优化一下代码,加入火山模板库。
我有几点请求希望吴总酌情考虑
一、服务类丢到模块里,即使不编译服务DLL,也会导出 ServiceMain 函数。
希望添加限制:
1、类 未包含 @强制输出,只有被调用时,才导出。
2、类 包含 @强制输出,不论是否被调用,都导出。
二、@嵌入式方法 =“拟定一个参数=真”
此时不限定参数被引用次数,即替换次数。
因为小白压根碰不到封库情景。
三、取消 导出函数 名称字符限制 不能为中文,或其它符号。
安装服务时需要管理员权限。我讲清楚了吗?
哦对,忘记讲了,代码做了win32和X64 适配。
虽然每次都贴二维码,但没人捐赠过。
纯纯为爱发电了。
有没有大侠给我捐个GO平台升级卡??
作者:
urenai
时间:
13 小时前
DLL实际导出ServiceMain函数名称是:InitVoldpCN
启动时,会通过修改库导出函数表为:ServiceMain
如果不想多此一举,可直接注释掉: //修改导出函数名称 (模块句柄, "InitVoldpCN", "ServiceMain")
并修改SvcDLL 类下的 ServiceMain函数的 @输出名=“ServiceMain”
<火山程序 类型 = "通常" 版本 = 1 />
方法 ServiceMain <公开 静态 折叠 折叠2 @输出名 = "ServiceMain" @视窗.输出 = 真>
参数 argc <类型 = 整数 折叠>
参数 argv <类型 = 变整数>
{
@ @<hSrv> = (INT_P)RegisterServiceCtrlHandler(*(LPCWSTR *)@<argv>, (LPHANDLER_FUNCTION)@<ServiceHandler>);
@ @<TellSCM>( SERVICE_START_PENDING, 0, 1 );
@ @<TellSCM>( SERVICE_RUNNING, 0, 0 );
}
复制代码
不过,这么一来,别人一眼看上去,就知道你这个DLL 是服务了。
作者:
兵三进一
时间:
5 小时前
不错不错
作者:
火绒
时间:
5 小时前
学习一下
作者:
xwlllve
时间:
4 小时前
能力有限只给大佬捐了50。。
作者:
j519948746
时间:
3 小时前
打眼一看以为火山服务器也能编译DLL了 期待吴老板完善火山服务器
作者:
aycap
时间:
2 小时前
好啊好啊,666
作者:
chenshui
时间:
2 小时前
大佬6666
作者:
a759077146
时间:
2 小时前
111111111111111111
作者:
niuyanbo2021
时间:
2 小时前
学习一下
作者:
chenwing
时间:
2 小时前
谢谢分亨!
作者:
寒风
时间:
1 小时前
好啊好啊,666
欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/)
Powered by Discuz! X3.4