送钱改写一个 MFC 程序,大华示例程序提取一功能。

2020-03-15 01:12:20 +08:00
 czwstc

大华的 SDK 看得我快吐了。求老哥帮助。

不白嫖。暂定 400 块。

大华的 MFC 示例程序,已有功能:登陆,查询客流量

功能流程:登陆——查询昨日数据——保存入 mysql。

目的是为了定时将数据(昨日人流进出)存入数据库。

所以改写成 C++最好。或者 MFC 改一下,仅仅查昨日数据,然后保存入 mysql 也可以。

可以外部或者内部都行。

参考:

联系方式:tg:zweic wx:Zeichan

3857 次点击
所在节点    程序员
25 条回复
Barrydahua
2020-03-15 01:18:41 +08:00
hahaha,大华的 SDK 能用 /?
czwstc
2020-03-15 01:22:52 +08:00
@Barrydahua /dog 我觉得,大华的人写的时候一定非常牛逼吧。
SpencerCJH
2020-03-15 02:44:36 +08:00
好有年代感的样子....
czwstc
2020-03-15 03:53:28 +08:00
@SpencerCJH 文档里推荐环境:vs2005
levelworm
2020-03-15 08:21:17 +08:00
本文中的所有示例代码仅在 Windows7 操作系统下 VC++6.0 测试过。
看我的颤抖。。。
levelworm
2020-03-15 08:23:25 +08:00
话说运行时报错报的是什么?懒得装 VC 6.0 试了。。。
levelworm
2020-03-15 08:31:25 +08:00
正在链接...
main.obj : error LNK2019: 无法解析的外部符号 __imp__CLIENT_GetLastError@0,该符号在函数 "void __cdecl InitTest(void)" (?InitTest@@YAXXZ) 中被引用
main.obj : error LNK2019: 无法解析的外部符号 __imp__CLIENT_LoginEx2@32,该符号在函数 "void __cdecl InitTest(void)" (?InitTest@@YAXXZ) 中被引用
main.obj : error LNK2019: 无法解析的外部符号 __imp__CLIENT_SetAutoReconnect@8,该符号在函数 "void __cdecl InitTest(void)" (?InitTest@@YAXXZ) 中被引用
main.obj : error LNK2019: 无法解析的外部符号 __imp__CLIENT_Init@8,该符号在函数 "void __cdecl InitTest(void)" (?InitTest@@YAXXZ) 中被引用
main.obj : error LNK2019: 无法解析的外部符号 __imp__CLIENT_Cleanup@0,该符号在函数 "void __cdecl EndTest(void)" (?EndTest@@YAXXZ) 中被引用
main.obj : error LNK2019: 无法解析的外部符号 __imp__CLIENT_Logout@4,该符号在函数 "void __cdecl EndTest(void)" (?EndTest@@YAXXZ) 中被引用
C:\Users\Administrator\Documents\Visual Studio 2005\Projects\fix\Debug\fix.exe : fatal error LNK1120: 6 个无法解析的外部命令

好奇一把,VS Studio 的 lib 都设置好了么?感觉是没找到这些 SDK 里头的函数啊。不过我水平有限。。。
levelworm
2020-03-15 08:37:50 +08:00
啊我弄错了,那个客流量才是你的程序吧
ybw
2020-03-15 09:58:50 +08:00
800
tairan2006
2020-03-15 09:59:27 +08:00
这也太古老了
augustheart
2020-03-15 11:43:57 +08:00
如果能符号确定存在的话,基本上就是出在 dllexport 和 dllimport 的定义上了
augustheart
2020-03-15 11:45:48 +08:00
@augustheart 呃,上面说的是 7 楼的报错
czwstc
2020-03-15 11:47:37 +08:00
@levelworm 对的,这个代码我照着文档里抄的,就报错了。客流量是给的官方,我随手拖了拖按钮。
mclxly
2020-03-15 12:46:06 +08:00
看错误信息好像是编译时没有找到对应的 lib, 没环境懒得实操
czwstc
2020-03-15 12:53:59 +08:00
@levelworm 发现了,似乎 lib 是 64 位的。改 换 32 位 sdk 的 lib 和 dll 好像可以运行。
augustheart
2020-03-15 14:06:46 +08:00
试着编译了一下,vs19 下面直接转换直接就过了
augustheart
2020-03-15 14:09:28 +08:00
粗看了一下,楼主要的东西应该就在
BOOL CHistoryQuery::StartFindNumberState(int nChannel, int nType)

int CHistoryQuery::DoFindNumberStarteEx(int nBegin, int nSearchCount)
里面
不过,其实我根本没搞清楚楼主要啥
(“看起来很简单”,键盘党发出了轻而易举的声音)
……逃
yngzij
2020-03-15 18:46:12 +08:00
可惜手里没有 windows 摊手
czwstc
2020-03-15 19:38:32 +08:00
Update 一下进展:
傻逼在 vs2005 很多错不会报。我换成了 vs2017,然后就报了 lib 是 64 位的,我调试的 32 位的。
改成 32 位之后,成功登陆。
StartFindNumberState 查询这部分的代码:
居然有错别字。。



然后,我死活没找到 sdk 里哪里说了输出的语句( CLIENT_StartFindNumberStat )怎么写。



研究中
jeffw
2020-03-15 21:52:39 +08:00
@czwstc CLIENT_StartFindNumberStat 输出的是返回值,返回值是查询句柄,然后把查询句柄传入 CLIENT_DoFindNumberStat 函数进行查询,我不知道哪里错的不对,调用 CLIENT_DoFindNumberStat 后,就自动断线了,CLIENT_DoFindNumberStat 返回-1。 调用 CLIENT_GetLastError 返回的错误码是 0x80000002,即 NET_NETWORK_ERROR,查文档,意思是“网络错误,可能因为网络超时”,卡在这个问题上 2 个小时没解决,最后没办法只能改厂家 demo 了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/652881

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX