开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 254|回复: 7
收起左侧

[已解决] C转E 代码求助

 关闭 [复制链接]
结帖率:33% (2/6)
发表于 2025-1-8 22:11:19 | 显示全部楼层 |阅读模式   吉林省吉林市
8精币
int main()
{
       
        HINSTANCE hDllInst = LoadLibrary(TEXT("CaptchaLibrary.dll"));

       
        if (hDllInst)

        {
                typedef int(WINAPI *MYFUNC1)();
                typedef const char* (WINAPI *MYFUNC2)(const char*);
                typedef const char* (WINAPI *MYFUNC3)(const char*);
                typedef void(WINAPI *MYFUNC4)();
                string res;
                const char* result;
                MYFUNC1 _InitSession = NULL;
                MYFUNC2 _PredictBase64 = NULL;
                MYFUNC3 _PredictFile = NULL;
                MYFUNC4 _FreeSession = NULL;
                _InitSession = (MYFUNC1)GetProcAddress(hDllInst, "InitSession");
                _PredictBase64 = (MYFUNC2)GetProcAddress(hDllInst, "PredictBase64");
                _PredictFile = (MYFUNC3)GetProcAddress(hDllInst, "PredictFile");
                _FreeSession = (MYFUNC4)GetProcAddress(hDllInst, "FreeSession");

                int code = _InitSession();

                const char* s = "此处省略base64编码的文本型字符串";
                const char* f = "./test.png";
                printf("predictBase64: %s\n", _PredictBase64(s));
                printf("predictFile: %s\n", _PredictFile(f));
                _FreeSession();

                FreeLibrary(hDllInst);

                return 0;
        }
       
}

最佳答案

查看完整内容

因为没有CaptchaLibrary.dll 我只能把我理解的给你了 [e=0].版本 2 .DLL命令 LoadLibrary, 整数型, "kernel32.dll", "LoadLibraryA" .参数 lpLibFileName, 文本型 .DLL命令 FreeLibrary, 整数型, "kernel32.dll", "FreeLibrary" .参数 hLibModule, 整数型 .DLL命令 InitSession, 整数型, "CaptchaLibrary.dll", "InitSession" .DLL命令 PredictFile, 文本型, "CaptchaLibrary.dll", "PredictFile" .参数 filePath, ...

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳
结帖率:54% (7/13)

签到天数: 18 天

发表于 2025-1-8 22:11:20 | 显示全部楼层   浙江省嘉兴市
因为没有CaptchaLibrary.dll
我只能把我理解的给你了
  
DLL命令名返回值类型公开备 注
LoadLibrary整数型 
DLL库文件名:
kernel32.dll
在DLL库中对应命令名:
LoadLibraryA
参数名类 型传址数组备 注
lpLibFileName文本型
DLL命令名返回值类型公开备 注
FreeLibrary整数型 
DLL库文件名:
kernel32.dll
在DLL库中对应命令名:
FreeLibrary
参数名类 型传址数组备 注
hLibModule整数型
DLL命令名返回值类型公开备 注
InitSession整数型 
DLL库文件名:
CaptchaLibrary.dll
在DLL库中对应命令名:
InitSession
参数名类 型传址数组备 注
DLL命令名返回值类型公开备 注
PredictFile文本型 
DLL库文件名:
CaptchaLibrary.dll
在DLL库中对应命令名:
PredictFile
参数名类 型传址数组备 注
filePath文本型
DLL命令名返回值类型公开备 注
PredictBase64文本型 
DLL库文件名:
CaptchaLibrary.dll
在DLL库中对应命令名:
PredictBase64
参数名类 型传址数组备 注
base64Str文本型
DLL命令名返回值类型公开备 注
FreeSession 
DLL库文件名:
CaptchaLibrary.dll
在DLL库中对应命令名:
FreeSession
参数名类 型传址数组备 注
handle整数型

  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
子程序名返回值类型公开备 注
_按钮1_被单击  
变量名类 型静态数组备 注
dll句柄整数型 
s文本型 
f文本型 
code整数型 
result文本型 
dll句柄 = LoadLibrary (“CaptchaLibrary.dll”)
如果真 (dll句柄 = 0)
信息框 (“DLL 加载失败”, 0, “错误”, )
code = InitSession ()
如果真 (code ≠ 0)
信息框 (“InitSession 失败,错误代码:”到文本 (code), 0, “错误”, )
s = “此处省略base64编码的文本型字符串”
f = “./test.png”
result = PredictBase64 (s)
信息框 (“predictBase64: ” + result, 0, “结果”, )
result = PredictFile (f)
信息框 (“predictFile: ” + result, 0, “结果”, )
FreeSession ()
FreeLibrary (dll句柄)

评分

参与人数 1荣誉 +1 收起 理由
笨潴 + 1 热心帮助他人,荣誉+1,希望继续努力(*^__^*) 嘻嘻!

查看全部评分

回复

使用道具 举报

签到天数: 12 天

发表于 2025-1-8 22:36:30 | 显示全部楼层   宁夏回族自治区石嘴山市
学习一下,好东西,感谢大佬的分享!
回复

使用道具 举报

签到天数: 12 天

发表于 2025-1-8 22:38:18 | 显示全部楼层   宁夏回族自治区石嘴山市
学习一下,好东西,感谢大佬的分享!
回复

使用道具 举报

结帖率:0% (0/2)

签到天数: 19 天

发表于 2025-1-8 23:15:40 高大上手机用户 | 显示全部楼层   福建省福州市
这应该是验证码识别你可以用论坛大佬开发的方便食用
回复

使用道具 举报

签到天数: 1 天

发表于 2025-1-9 05:32:02 | 显示全部楼层   广东省珠海市
.版本 2
.支持库 spec

.子程序 _启动子程序, 整数型,, 请在本子程序中放置易程序入口代码

.局部变量 hDllInst, 整数型
.局部变量 _InitSession, 子程序指针
.局部变量 _PredictBase64, 子程序指针
.局部变量 _PredictFile, 子程序指针
.局部变量 _FreeSession, 子程序指针
.局部变量 code, 整数型
.局部变量 s, 文本型
.局部变量 f, 文本型

hDllInst = 加载库 (“CaptchaLibrary.dll”)
.如果真 (hDllInst ≠ 0)
    _InitSession = 获取Proc地址 (hDllInst, “InitSession”)
    _PredictBase64 = 获取Proc地址 (hDllInst, “PredictBase64”)
    _PredictFile = 获取Proc地址 (hDllInst, “PredictFile”)
    _FreeSession = 获取Proc地址 (hDllInst, “FreeSession”)

    code = 调用子程序 (_InitSession, )

    s = “此处省略base64编码的文本型字符串”
    调试输出 (_PredictBase64 (s))

    f = “./test.png”
    调试输出 (_PredictFile (f))

    调用子程序 (_FreeSession, )

    卸载库 (hDllInst)
.如果真结束
返回 0
回复

使用道具 举报

结帖率:100% (11/11)

签到天数: 18 天

发表于 2025-1-9 08:17:36 | 显示全部楼层   河南省郑州市
  
子程序名返回值类型公开备 注
_启动子程序整数型 
.局部变量 hDllInst, 整数型
.局部变量 _InitSession, 子程序指针
.局部变量 _PredictBase64, 子程序指针
.局部变量 _PredictFile, 子程序指针
.局部变量 _FreeSession, 子程序指针
.局部变量 code, 整数型
.局部变量 base64Data, 文本型
.局部变量 filePath, 文本型
.局部变量 resultBase64, 文本型
.局部变量 resultFile, 文本型
' 加载 DLL
hDllInst := 加载动态链接库 ("CaptchaLibrary.dll")
如果真 (hDllInst = 0)
输出调试文本 ("Failed to load CaptchaLibrary.dll!")
返回 (1)

' 获取函数地址
_InitSession := 取函数地址 (hDllInst, "InitSession")
_PredictBase64 := 取函数地址 (hDllInst, "PredictBase64")
_PredictFile := 取函数地址 (hDllInst, "PredictFile")
_FreeSession := 取函数地址 (hDllInst, "FreeSession")
' 检查函数地址是否获取成功
如果真 (_InitSession = 0 _PredictBase64 = 0 _PredictFile = 0 _FreeSession = 0)
输出调试文本 ("Failed to get function address!")
卸载动态链接库 (hDllInst)
返回 (1)

' 初始化会话
code := 调用子程序 (_InitSession)
如果真 (code ≠ 0)
输出调试文本 ("Failed to initialize session!")
卸载动态链接库 (hDllInst)
返回 (1)

' 预测 Base64 编码的验证码
base64Data := "此处省略base64编码的文本型字符串"
resultBase64 := 调用子程序 (_PredictBase64, base64Data)
如果真 (resultBase64 ≠ "")
输出调试文本 ("predictBase64: " + resultBase64)
输出调试文本 ("Failed to predict base64!")

' 预测文件中的验证码
filePath := "./test.png"
resultFile := 调用子程序 (_PredictFile, filePath)
如果真 (resultFile ≠ "")
输出调试文本 ("predictFile: " + resultFile)
输出调试文本 ("Failed to predict file!")

' 释放会话
调用子程序 (_FreeSession)
' 卸载 DLL
卸载动态链接库 (hDllInst)
返回 (0)

回复

使用道具 举报

结帖率:100% (1/1)

签到天数: 17 天

发表于 2025-1-9 09:32:47 | 显示全部楼层   广东省肇庆市
尛龍科技 发表于 2025-1-9 01:21
因为没有CaptchaLibrary.dll
我只能把我理解的给你了
[e=0].版本 2

学到了,谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表