API调用问题请教!!!!!

sunghj 2019-01-10 11:25:24
海康威视最新的SDK有人用过吗,登陆注册的函数调用报参数传递错误(参数错误。SDK接口中给入的输入或输出参数为空,或者参数格式或值不符合要求。)。下面是C++代码

LONG NET_DVR_Login_V40( LPNET_DVR_USER_LOGIN_INFO pLoginInfo,
LPNET_DVR_DEVICEINFO_V40 lpDeviceInfo);

struct{
char sDeviceAddress[NET_DVR_DEV_ADDRESS_MAX_LEN];
BYTE byUseTransport;
WORD wPort;
char sUserName[NET_DVR_LOGIN_USERNAME_MAX_LEN];
char sPassword[NET_DVR_LOGIN_PASSWD_MAX_LEN];
fLoginResultCallBack cbLoginResult;
void *pUser;
BOOL bUseAsynLogin;
BYTE byProxyType;
BYTE byUseUTCTime;
BYTE byLoginMode;
BYTE byHttps;
LONG iProxyID;
BYTE byRes3[120];
}NET_DVR_USER_LOGIN_INFO,*LPNET_DVR_USER_LOGIN_INFO;

struct{
NET_DVR_DEVICEINFO_V30 struDeviceV30;
BYTE bySupportLock;
BYTE byRetryLoginTime;
BYTE byPasswordLevel;
BYTE byProxyType;
DWORD dwSurplusLockTime;
BYTE byCharEncodeType;
BYTE bySupportDev5;
BYTE byLoginMode; BYTE byRes2[253];
}NET_DVR_DEVICEINFO_V40,*LPNET_DVR_DEVICEINFO_V40;

struct{
BYTE sSerialNumber[SERIALNO_LEN];
BYTE byAlarmInPortNum;
BYTE byAlarmOutPortNum;
BYTE byDiskNum;
BYTE byDVRType;
BYTE byChanNum;
BYTE byStartChan;
BYTE byAudioChanNum;
BYTE byIPChanNum;
BYTE byZeroChanNum;
BYTE byMainProto;
BYTE bySubProto;
BYTE bySupport;
BYTE bySupport1;
BYTE bySupport2;
WORD wDevType;
BYTE bySupport3;
BYTE byMultiStreamProto;
BYTE byStartDChan;
BYTE byStartDTalkChan;
BYTE byHighDChanNum;
BYTE bySupport4;
BYTE byLanguageType;
BYTE byVoiceInChanNum;
BYTE byStartVoiceInChanNo;
BYTE byRes3[2];
BYTE byMirrorChanNum;
WORD wStartMirrorChanNo;
BYTE byRes2[2];
}NET_DVR_DEVICEINFO_V30,*LPNET_DVR_DEVICEINFO_V30;

这是Callback Function
typedef void(CALLBACK *fLoginResultCallBack)(
LONG lUserID,
DWORD dwResult,
LPNET_DVR_DEVICEINFO_V30 lpDeviceInfo,
void *pUser
);

下边是我修改vb的代码

Global Const NET_DVR_DEV_ADDRESS_MAX_LEN = 129
Global Const NET_DVR_LOGIN_USERNAME_MAX_LEN = 64
Global Const NET_DVR_LOGIN_PASSWD_MAX_LEN = 64
Global Const SERIALNO_LEN = 48 '序列号长度

Type NET_DVR_USER_LOGIN_INFO
sDeviceAddress As String * NET_DVR_DEV_ADDRESS_MAX_LEN
byUseTransport As Byte
wPort As Integer
sUserName As String * NET_DVR_LOGIN_USERNAME_MAX_LEN
sPassword As String * NET_DVR_LOGIN_PASSWD_MAX_LEN
cbLoginResult As Long
pUser As Long
bUseAsynLogin As Boolean
byProxyType As Byte
byUseUTCTime As Byte
byLoginMode As Byte
byHttps As Byte
iProxyID As Long
byRes3(120) As Byte
End Type

Type NET_DVR_DEVICEINFO_V30
sSerialNumber(SERIALNO_LEN) As Byte
byAlarmInPortNum As Byte
byAlarmOutPortNum As Byte
byDiskNum As Byte
byDVRType As Byte
byChanNum As Byte
byStartChan As Byte
byAudioChanNum As Byte
byIPChanNum As Byte
byZeroChanNum As Byte
byMainProto As Byte
bySubProto As Byte
bySupport As Byte
bySupport1 As Byte
bySupport2 As Byte
wDevType As Integer
bySupport3 As Byte
byMultiStreamProto As Byte
byStartDChan As Byte
byStartDTalkChan As Byte
byHighDChanNum As Byte
bySupport4 As Byte
byLanguageType As Byte
byVoiceInChanNum As Byte
byStartVoiceInChanNo As Byte
byRes3(2) As Byte
byMirrorChanNum As Byte
wStartMirrorChanNo As Integer
byRes2(2) As Byte
End Type

Type NET_DVR_DEVICEINFO_V40
struDeviceV30 As NET_DVR_DEVICEINFO_V30
bySupportLock As Byte
byRetryLoginTime As Byte
byPasswordLevel As Byte
byProxyType As Byte
dwSurplusLockTime As Long
byCharEncodeType As Byte
bySupportDev5 As Byte
byLoginMode As Byte
byRes2(253) As Byte
End Type

'设备登陆
Public Declare Function NET_DVR_Login_V40 Lib "HCNETSDK.dll" ( _
ByRef pLoginInfo As NET_DVR_USER_LOGIN_INFO, _
ByRef lpDeviceInfo As NET_DVR_DEVICEINFO_V40) As Long

下面是vb调用的代码

Dim pLoginInfo As NET_DVR_USER_LOGIN_INFO
Dim lpDeviceInfo As NET_DVR_DEVICEINFO_V40
'是否异步登录:0- 否,1- 是
pLoginInfo.bUseAsynLogin = 0

'ISAPI协议登录时是否启用HTTPS(byLoginMode为1时有效):0- 不启用,1- 启用,2- 自适应(设备支持协议类型未知时使用,一般不建议)
pLoginInfo.byHttps = 0

'登录模式(不同模式具体含义详见“Remarks”说明):0- SDK私有协议,1- ISAPI协议,2- 自适应(设备支持协议类型未知时使用,一般不建议)
pLoginInfo.byLoginMode = 0

'代理服务器类型:0- 不使用代理,1- 使用标准代理,2- 使用EHome代理
pLoginInfo.byProxyType = 0
pLoginInfo.byRes3(0) = 0

'是否启用能力集透传:0- 不启用透传,默认;1- 启用透传
pLoginInfo.byUseTransport = 0

'是否使用UTC时间:0- 不进行转换,默认;1- 输入输出UTC时间,SDK进行与设备时区的转换;2- 输入输出平台本地时间,SDK进行与设备时区的转换
pLoginInfo.byUseUTCTime = 0

'登录状态回调函数,bUseAsynLogin 为1时有效
Dim cbLoginResult As Long
pLoginInfo.cbLoginResult = cbLoginResult

'代理服务器序号,添加代理服务器信息时相对应的服务器数组下表值
pLoginInfo.iProxyID = 0

pLoginInfo.sDeviceAddress = Text1.Text
pLoginInfo.wPort = Text2.Text
pLoginInfo.sUserName = Text3.Text
pLoginInfo.sPassword = Text4.Text

'用户数据
Dim pUser As Long
pLoginInfo.pUser = pUser
Dim iUserId As Long

'登陆设备
iUserId = NET_DVR_Login_V40(pLoginInfo, lpDeviceInfo)
If iUserId = -1 Then
ErrorCode = NET_DVR_GetLastError()
MsgBox "登陆失败(" & ErrorCode & ")!", vbOKOnly + vbExclamation, "提醒"
Call NET_DVR_Cleanup
Exit Sub
End If

...全文
480 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunghj 2019-01-17
  • 打赏
  • 举报
回复
大神,再帮帮忙

LONG NET_DVR_StartRemoteConfig(  LONG                     lUserID,
  DWORD                    dwCommand,  LPVOID                   lpInBuffer,
  DWORD                    dwInBufferLen,
  fRemoteConfigCallback    cbStateCallback,  LPVOID                   pUserData
);

Callback Function
typedef void(CALLBACK *fRemoteConfigCallback)(
  DWORD    dwType,
  void     *lpBuffer,
  DWORD    dwBufLen,
  void     *pUserData
);
这是vb的定义

'启用长链接
Public Declare Function NET_DVR_StartRemoteConfig Lib "HCNETSDK.dll" ( _
                ByVal lUserID As Long, _
                ByVal dwCommand As Long, _
                ByVal lpInBuffer As Long, _
                ByVal dwInBufferLen As Long, _
                ByVal cbStateCallback As Long, _
                ByVal pUserData As Long) As Long

回调函数
'下发卡号回调函数
Public Function fSetRemoteConfigCallback(ByVal dwType As Long, ByVal lpBuffer As Long, ByVal dwBufLen As Long, ByVal pUserData As Long)
On Error GoTo ErrFlag
    MsgBox "fSetRemoteConfigCallback"
    List1.AddItem "fSetRemoteConfigCallback(dwType=" & dwType & ")!", 0
    If dwType <> NET_SDK_CALLBACK_TYPE_STATUS Then
        Exit Function
    End If
    Dim dwStatus As Long
    CopyMemory VarPtr(dwStatus), lpBuffer, 4   '复制lpBuffer的内存到dwStatus的指针处
    If dwStatus = NET_SDK_CALLBACK_STATUS_SUCCESS Then
        bSetCardCfgFinish = True
    End If
    List1.AddItem "fSetRemoteConfigCallback(dwStatus=" & dwStatus & ")!", 0
Exit Function
ErrFlag:
    MsgBox "fSetRemoteConfigCallback--" & Err.Description, vbOKOnly + vbExclamation, "提醒"
End Function
sunghj 2019-01-17
  • 打赏
  • 举报
回复
最终还是卡到了回调函数这,回调函数没有响应,但是等几秒后就崩溃了。
sunghj 2019-01-14
  • 打赏
  • 举报
回复
引用 8 楼 舉杯邀明月 的回复:
[quote=引用 7 楼 sunghj 的回复:] [quote=引用 6 楼 舉杯邀明月 的回复:] API函数参数中所有的“某某指针”,在VB中都可以定义成 as long ,  然后在调用时,按 ByVal 传递入相应的“正确地址”就行了。 这种方式,是“百分百兼容”的。
好的,谢谢[/quote] 问题都已经解决了,就结贴吧。 [/quote] 我本想等把这个项目弄完在结贴,因为后面还有几个类似的函数调用正在调试,对于c++转vb确实不太熟悉。这个贴先结掉,下次有问题要继续向您请教!
舉杯邀明月 2019-01-13
  • 打赏
  • 举报
回复
引用 7 楼 sunghj 的回复:
[quote=引用 6 楼 舉杯邀明月 的回复:]
API函数参数中所有的“某某指针”,在VB中都可以定义成 as long ,
 然后在调用时,按 ByVal 传递入相应的“正确地址”就行了。

这种方式,是“百分百兼容”的。

好的,谢谢[/quote]
问题都已经解决了,就结贴吧。

sunghj 2019-01-12
  • 打赏
  • 举报
回复
引用 6 楼 舉杯邀明月 的回复:
API函数参数中所有的“某某指针”,在VB中都可以定义成 as long ,  然后在调用时,按 ByVal 传递入相应的“正确地址”就行了。 这种方式,是“百分百兼容”的。
好的,谢谢
舉杯邀明月 2019-01-12
  • 打赏
  • 举报
回复
API函数参数中所有的“某某指针”,在VB中都可以定义成 as long ,
 然后在调用时,按 ByVal 传递入相应的“正确地址”就行了。

这种方式,是“百分百兼容”的。
sunghj 2019-01-12
  • 打赏
  • 举报
回复
引用 3 楼 舉杯邀明月 的回复:
另外,你贴出来的VB代码第36行,极可能是错误的! 按你那样写,pLoginInfo.pUser会是个“空指针”………… 不过我也从你上面的那些“内容”中看出这个成员有什么用处、应该如何使用及传递。 如果说是“指向用户名”的,它的结构成员中不是已经有“用户名”了吗……   并且一般这种情况下也应该是char * 类型而不是 void * 类型。 你自己查一下文档吧。
之前的问题解决了,非常感谢。现在又遇到一个问题,一个新的函数

BOOL NET_DVR_SendRemoteConfig(  
  LONG     lHandle,  
  DWORD    dwDataType,
  char     *pSendBuf,  
  DWORD    dwBufSize);

就是第三个参数char *pSendBuf,实际这个参数可以传递不同的结构体,其中一个是这样的
struct{  
  DWORD                       dwSize;
  DWORD                       dwModifyParamType;
  BYTE                        byCardNo[ACS_CARD_NO_LEN];
  BYTE                        byCardValid;
  BYTE                        byCardType;
  BYTE                        byLeaderCard;
  BYTE                        byUserType;;
  BYTE                        byDoorRight[MAX_DOOR_NUM];
  NET_DVR_VALID_PERIOD_CFG    struValid;
  BYTE                        byBelongGroup[MAX_GROUP_NUM];
  BYTE                        byCardPassword[CARD_PASSWORD_LEN];
  WORD                        wCardRightPlan[MAX_DOOR_NUM][MAX_CARD_RIGHT_PLAN_NUM];
  DWORD                       dwMaxSwipeTime;
  DWORD                       dwSwipeTime;
  WORD                        wRoomNumber;
  SHORT                       wFloorNumber;
  DWORD                       dwEmployeeNo;
  BYTE                        byName[NAME_LEN];
  WORD                        wDepartmentNo;
  WORD                        wSchedulePlanNo;
  BYTE                        bySchedulePlanType;
  BYTE                        byRes2[3];  
  DWORD                       dwLockID;
  BYTE                        byLockCode[MAX_LOCK_CODE_LEN];
  BYTE                        byRoomCode[MAX_DOOR_CODE_LEN];
  DWORD                       dwCardRight;
  DWORD                       dwPlanTemplate;
  DWORD                       dwCardUserId;
  BYTE                        byCardModelType;
  BYTE                        byRes3[83];
}NET_DVR_CARD_CFG_V50,*LPNET_DVR_CARD_CFG_V50;

不知道这个函数NET_DVR_SendRemoteConfig,在vb里要如何定义,我想定义成这样:
Public Declare Function NET_DVR_SendRemoteConfig Lib "HCNETSDK.dll" (ByVal lHandle As Long, ByVal dwDataType As Long, ByVal pSendBuf As long, _
        ByVal dwBufSize As Long) As Long

用VarPrt得到NET_DVR_CARD_CFG_V50结构的地址,然后传给pSendBuf,不知道是否可行。

sunghj 2019-01-11
  • 打赏
  • 举报
回复
有大神帮忙看看吗
sunghj 2019-01-11
  • 打赏
  • 举报
回复
to: 舉杯邀明月 谢谢,我试试
舉杯邀明月 2019-01-11
  • 打赏
  • 举报
回复
另外,你贴出来的VB代码第36行,极可能是错误的!

按你那样写,pLoginInfo.pUser会是个“空指针”…………

不过我也从你上面的那些“内容”中看出这个成员有什么用处、应该如何使用及传递。
如果说是“指向用户名”的,它的结构成员中不是已经有“用户名”了吗……
  并且一般这种情况下也应该是char * 类型而不是 void * 类型。


你自己查一下文档吧。
舉杯邀明月 2019-01-11
  • 打赏
  • 举报
回复
你在VB中定义的“数据类型”不正确。


另外,C++代码中的 char类型成员,建议在VB6中也用 Byte类型代替,而不是用 String * xxxx 。
比如,先“按你的思路”来说:
C++代码的: char sDeviceAddress[NET_DVR_DEV_ADDRESS_MAX_LEN];
建议这样改: sDeviceAddress(NET_DVR_DEV_ADDRESS_MAX_LEN) as byte


另外,就是“Byte数组成员”的定义问题:
比如:
 BYTE byRes3[120];   你改为 byRes3(120) As Byte
 BYTE sSerialNumber[SERIALNO_LEN]; 你改为 sSerialNumber(SERIALNO_LEN) As Byte
这些都是错误的!
(当然:你在模块开头写了 Option Base 1除外。 不过我估计没这可能性。)
C++中那个方括号中的代表“元素数量”;而VB中定义数组,括号中是“数组上界”。
因为默认是下标从0开始,这样会比你“预想”的要多一个元素出来,会造成“结构错位”的!
例如byRes3[120]; 结果是byRes3区域长度是120字节;
  而你 byRes3(120) As Byte后,结果 byRes3区域的长度是121字节了!
如果是“最后一个成员”也许没事;否则话,就造成其它成员的“位置”错位了。

所以,(默认情况下)正确的是:
BYTE byRes3[120];   应为 byRes3(119) As Byte
BYTE sSerialNumber[SERIALNO_LEN]; 应为 sSerialNumber(SERIALNO_LEN-1) As Byte

同样,上面我说的 char sDeviceAddress[NET_DVR_DEV_ADDRESS_MAX_LEN];
 也应该这样改: sDeviceAddress(NET_DVR_DEV_ADDRESS_MAX_LEN-1) as byte
一个牛人提供的GIS源码(很好 下面文字非本人所写,文件提到的下载的东西我全部放包里了。 最后的礼物:校园多媒体系统和校园WEBGIS系统 为什么说是最后的礼物,大概是因为我突然想这个blog不更新了。为什么呢?可能是今天晚上喝多了酒,呵呵,原因等下一篇中也许会阐述,同时我会对这个blog的文章等做个总结。其实,这两个东西至少我暂时是不大想放出来的,只是觉得反正这里也不更新了,仅仅将这些东西作为礼物吧,再说毕竟这些东西太过于菜菜了。还是先来介绍下最后的两个礼物吧: 校园多媒体系统: 这个大概是今年过年后做的东西了,是给师弟做毕业设计用的。应该讲这也仅仅是电子地图查询系统的更新而已,没有太大的特色,只是做了些比较花的功能而已。 特色一:系统采用了双重数据库,对于如果无法连接SQL Server数据库的情况将提供备用的ACCESS数据库支持。 特色二:系统采用了实时在线更新的方法对软件进行升级,升级仅仅需要设置好服务端以及更新文件列表等即可。 特色三:界面上有所创新,吸取Google的WEB地图的界面,对部分控制条进行显示和隐藏。可以看我以前的截图,做了个界面,请大家PP http://www.cnblogs.com/Tangf/archive/2006/03/16/351640.html 特色四:简单的加密方式也可以学习下。这个加密方式可以对移植性进行控制。 特色五:移植性强,许多东西没有写死,只需要改变设置文件、启动画面文件、地图文件和数据库文件即可成为一套全新的系统。 开发环境:Visual Basic 6.0,MAPX5.02中文版,ACCESS,SQL SERVER 2000,AutodeskExpressViewe3.1、Windows Media Player 9.0等。 下载地址:http://www.cnblogs.com/Files/Tangf/Campus_Multimedia_Infomation_System_Source.rar 压缩包中为源代码和生成的程序,同时还赠送了一个基于SF6的MAPX打包文件以及整个校园的地图文件,提供了开放环境中需要的插件支持文件(System目录下),同时由于文件大小原因,删除了许多Img目录下的图片并且在数据库中删除了部分Img记录(不然会出错),仅保留了1号楼的图片供参考。 相关或参考文章: 电子地图查询系统_v1.0_源代码(VB6+MAPX5) http://www.cnblogs.com/Tangf/archive/2006/02/15/331375.htmlGoogle ┕电子地图查询系统源代码:http://www.cnblogs.com/Files/Tangf/MapSearch_Source.rar 用SetupFactory打包MapX(带打好的包和打包文档以及录像) http://www.cnblogs.com/Tangf/archive/2006/02/05/325842.html ┕打包以及文档和录像:http://www.cnblogs.com/Files/Tangf/Mapx_Pack.rar 再谈MAPX打包以及MAPX的安装 http://www.cnblogs.com/Tangf/archive/2006/05/31/414361.html 校园WEBGIS: 这个应该是05年的时候做的毕业设计,用超图的Supermap IS 2003+SQL Server 2000建立的一个比较的简单的系统,只是玄乎了下就变的有点意思了,甚至也有点学习或者创新的意思。 加上上次发布的论文部分,这样整个系统也算是补全了。原来论文部分请见:校园WebGIS开发与实践(论文部分) http://www.cnblogs.com/Tangf/archive/2006/01/13/316918.html 特色一:提出了地图接口的概念(其实当时的想法是将网络上的所谓企业标注移植到了这个系统上,只是这个功能免费提供给了学校的部门使用)。 特色二:部分搜索功能是通过搜索SQL输出XML来实现。 特色三:系统已经详细到每个楼房楼层的办公室以及办公室内的电话和教师名单、教学楼的班级以及课程表、宿舍的成员组成联系方式等。 特色四:空间数据库和属性数据库通过SQL Server的视图功能实现关联。 开发环境:Supermap Desktop 2003(地图编辑工具),Supermap IS 2003(GIS服务端),ASP+SQL Server 2000(开发语言和数据库环境),IIS 5.0(WEB服务端),AutodeskExpressViewe3.1(Autodesk公司发布的浏览DWF文件的的客户端插件)等。 安装方法请见论文的附录部分,请不要再询问如何安装。 由于当时将每个楼层平面图的CAD数据也同时存入了SQL Server,所以导致数据库文件过于庞大,大概90M多,经过压缩大概21.8M左右。由于文件过大没有地方存放,所以这部分也不提供。所以可能会导致系统功能无法实现。数据库不提供,请不要索取。 下载地址:http://www.cnblogs.com/Files/Tangf/Campus_WebGIS_Source.rar 压缩包中为WEB主程序,以及答辩用的演讲稿。 相关或参考文章: 校园WebGIS开发与实践(论文部分) http://www.cnblogs.com/Tangf/archive/2006/01/13/316918.html ┕校园WEBGIS的论文下载:http://www.cnblogs.com/Files/Tangf/Campus_WebGIS.rar 由于各种原因,压缩包中已经删除了无关紧要的楼层平面图的DWF部分。同时由于文件大小原因,AutodeskExpressViewe3.1程序也没有提供,请从网上下载。 特别说明:两个程序中已经提供了比较完整的数据和代码,可以复制、修改、传播,传播情保证文件完整性,并且包含Readme文件同时注明出处,但禁止用于商业用途。谢谢。 但愿我的礼物能够给您带来一些帮助。 ==================================================================== 公告:Rover's Official Blog停止更新 想了几天,终于决定写这么一个公告了。并不是因为写些东西太累或者太占时间而停止了更新,也许就如同前文说是因为今天喝多了酒(呵呵,玩笑),也许如同MSN副标题所言:严重的压力和抑郁,强烈的人格分裂和精神分裂,等待崩溃(呵呵,又一个玩笑)。可能是觉得写的东西没什么水准,并且也不能时常的更新,加上个人感觉自己技术的下降(呵呵,也许本来就没有什么技术),考虑甚多,终于作了这么个决定:Rover's Official Blog停止更新 同时停止更新的是Rover's GIS Blog,是3snews上面的Blog,不过上面的基本上也都是本站的复制。生活类Blog会不定时更新,停靠在了Space和新浪,由于关系自己暴露隐私等问题,所以本文不详细提供连接地址。从元旦开博到现在也已经八个月的时间了,发了40多篇的随笔和0篇的文章,非常开心能够在博客园作为我的主blog的停靠站,能够让我在这里结识这么多的朋友,并同他们交流,让我学到甚多、收益菲浅,非常的感谢博客园感谢大家。 也许我还会回来,说不定有一天我会发公告说本Blog重新开始更新,很有可能的事情。希望这段日子能够安静些,能够思考更多些,能够明确些方向,能够做出些实质性的东西,能够提高些自身的技术能力。非常的希望,不知道能否实现。 也许我也会偶然的更新一下本日志,大概是在有东西发布或者有好东西同大家分享的情况下吧。不过这篇日志就置顶了吧。 正准备经营的东西,希望能够得到大家的帮助,非常的感谢: www.gpsplayer.cn:GPS玩家。GPS资讯类网站。类似一个简单的新闻系统,加上一些简单的留言板等等功能,可能会添加一些Gmap API开发类的内容。 www.wikish.cn:维基上海。有了点想法和思路,但暂时由于技术能力等原因无法实现。 其他:还有两个玉米没有想好(呵呵)。 由于个人比较自私,所以想法上即使有所创意也不大会和大家分享(请见谅),加上自身没有技术,所以个人基本上是宁烂也不实现或者让别人实现(是有点自私了)。请原谅我的自私,Google是有创意的,但他的技术壁垒是他人所无法逾越的,而我即使有创意也没有任何技术壁垒,所以不讲了。加上大陆地区太多的炮制太另人失望了(去年非常红火的百万首页,在大陆地区做的烂的一塌,只会炮制没有几个是有创意或者在人家创意的基础上增加自己创意的,唉)。 非常的希望大家能够给我意见或者建议,对大家提供的帮助非常的感谢。 如果您对这一段有想法或者其他愿意和我交流,那么请给我mail。谢谢。 我的联系方式和需要注意的地方: E-mail:tfljh@163.com(基本上是每天晚上登陆一次) MSN:tfljh@msn.com(基本上是开机登陆,不过状态一般为忙碌,Mail会不定时登陆) Gmail:tangf2004@gmail.com(基本上是两三天登陆一次,Gtalk则不定时登陆了) QQ:65985498(基本上是每天晚上隐身登陆一次,并且一般在十分钟内关闭) 以后的联系通过E-Mail联系,谢绝一切的及时通讯工具,请尽量不要添加我为好友,包括QQ/MSN/Gtalk,如果您发的Mail足够的诚恳并且也足够的值得聊天的理由,那么我会添加你的。不希望通过聊天的方式来解决问题,聊了半天的问题最后做公安局调查户口的事情了(呵呵,说的严重了),或者说是聊了半天后就无聊了然后再也不聊了,多么的没有意思。我倒还是很愿意花上十分钟的时间来阅读您的Mail并将我知道的所答复给您。当然如果有邮件不回复,那么基本上我是不懂而无法回答或者觉得没有任何答复的价值,请多多的包涵。 以前写的部分日志以及提供的下载文件整理: 最后的礼物:校园多媒体系统和校园WEBGIS系统 http://www.cnblogs.com/Tangf/archive/2006/08/05/468257.html ┕校园多媒体系统源代码下载:http://www.cnblogs.com/Files/Tangf/Campus_Multimedia_Infomation_System_Source.rar ┕校园WEBGIS系统源代码下载:http://www.cnblogs.com/Files/Tangf/Campus_WebGIS_Source.rar Google卫星地图的URL计算 http://www.cnblogs.com/Tangf/archive/2006/07/23/457902.html 两点坐标间距离的算法以及验证 http://www.cnblogs.com/Tangf/archive/2006/07/23/457884.html 极索(Gsuo)推出新版地图采用Gmap设计思路 http://www.cnblogs.com/Tangf/archive/2006/07/23/457521.html 浅谈LBS(基于位置的服务) http://www.cnblogs.com/Tangf/archive/2006/07/17/452498.html MapBar地图更新啦 http://www.cnblogs.com/Tangf/archive/2006/07/13/450215.html 推荐一款软件:Global Mapper http://www.cnblogs.com/Tangf/archive/2006/07/11/448411.html 51ditu、清华地图以及Google地图 http://www.cnblogs.com/Tangf/archive/2006/07/02/440953.html 计算最近点和最近线段 http://www.cnblogs.com/Tangf/archive/2006/07/01/440311.html ┕最近点和最近线段算法示例代码(脱离MAPX5,VB6实现):http://www.cnblogs.com/Files/Tangf/neardis_new.rar Garmin Nuvi 350试用手记 http://www.cnblogs.com/Tangf/archive/2006/06/17/428045.html ┕全文下载(供转载专用):http://www.cnblogs.com/Files/Tangf/Nuvi350.rar MapBar中坐标的加密和解密(JS实现) http://www.cnblogs.com/Tangf/archive/2006/06/06/419124.html 发现一个SVG做的地图网站:ChinaQuest http://www.cnblogs.com/Tangf/archive/2006/06/04/417110.html boot.ini文件的修复 http://www.cnblogs.com/Tangf/archive/2006/06/04/416915.html 再谈MAPX打包以及MAPX的安装 http://www.cnblogs.com/Tangf/archive/2006/05/31/414361.html 寻找MapBar的地图切割方法 http://www.cnblogs.com/Tangf/archive/2006/05/28/411397.html ┕我自己切割的Mapbar地图,并且可以在本地运行:http://www.cnblogs.com/Files/Tangf/MapBar_My.rar 已知一点求最近点(问题请教) http://www.cnblogs.com/Tangf/archive/2006/05/28/411182.html ┕求最近点示例代码(基于MAPX5,VB6实现):http://www.cnblogs.com/Files/Tangf/neardis.rar 基于数据库的公交换乘算法(一点思路一点问题) http://www.cnblogs.com/Tangf/archive/2006/05/28/411065.html MapInfo/ArcInfo交流(提问解答,不定时更新) http://www.cnblogs.com/Tangf/archive/2006/05/09/395489.html (收集)Shape转KML工具(更新:Google正式收购SketchUp) http://www.cnblogs.com/Tangf/archive/2006/04/26/386092.html ┕两个SHape转KML工具:http://www.cnblogs.com/Files/Tangf/shape2kml.rar 地图投影 http://www.cnblogs.com/Tangf/archive/2006/04/17/377638.html 容器透明(如PictureBox) http://www.cnblogs.com/Tangf/archive/2006/04/05/367885.html Google地图切割以及类似Google的开源API http://www.cnblogs.com/Tangf/archive/2006/03/29/362110.html 获取字符串中的指定位置的子字符串 http://www.cnblogs.com/Tangf/archive/2006/03/25/358311.html 做了个界面,请大家PP http://www.cnblogs.com/Tangf/archive/2006/03/16/351640.html [存点资料]车载导航电子地图走向标准化 http://www.cnblogs.com/Tangf/archive/2006/03/04/342733.html [ZT]谈谈 wiki 的缺点 http://www.cnblogs.com/Tangf/archive/2006/03/01/340725.html [转贴]Web地图服务:GIS走近你我 http://www.cnblogs.com/Tangf/archive/2006/02/23/336493.html 算我给Google本地和E都市做个广告吧 http://www.cnblogs.com/Tangf/archive/2006/02/18/333076.html 电子地图查询系统_v1.0_源代码(VB6+MAPX5) http://www.cnblogs.com/Tangf/archive/2006/02/15/331375.htmlGoogle ┕电子地图查询系统源代码:http://www.cnblogs.com/Files/Tangf/MapSearch_Source.rar 地图的配色问题(以及MapBar和51ditu) http://www.cnblogs.com/Tangf/archive/2006/02/12/329162.html [分享]上海市样图 http://www.cnblogs.com/Tangf/archive/2006/02/08/327310.html ┕上海市样图:http://www.cnblogs.com/Files/Tangf/Map_SH.rar 用SetupFactory打包MapX(带打好的包和打包文档以及录像) http://www.cnblogs.com/Tangf/archive/2006/02/05/325842.html ┕打包以及文档和录像:http://www.cnblogs.com/Files/Tangf/Mapx_Pack.rar ArcGIS9、MapObject2.2和ArcExplorer2.0连接ArcSDE9.0问题 http://www.cnblogs.com/Tangf/archive/2006/01/26/323698.html MapBar和MapInfo中的比例尺[更新:MapBar比例尺是正确的] http://www.cnblogs.com/Tangf/archive/2006/01/24/322854.html MapBar研究(百度地图中的JS部分) http://www.cnblogs.com/Tangf/archive/2006/01/22/321756.html ┕本地浏览,调用远程图片:http://www.cnblogs.com/Files/Tangf/MapBar_baidu.rar 浅谈WEBGIS运用栅格地图实现原理[更新:Google Maps带来的新型WebGIS设计模式] http://www.cnblogs.com/Tangf/archive/2006/01/14/317327.html 校园WebGIS开发与实践(论文部分) http://www.cnblogs.com/Tangf/archive/2006/01/13/316918.html ┕校园WEBGIS的论文下载:http://www.cnblogs.com/Files/Tangf/Campus_WebGIS.rar MapInfo中按区域分割地图的方法(带MapBasic方法) http://www.cnblogs.com/Tangf/archive/2006/01/13/316363.html MIFtoSHP通用转换工具 http://www.cnblogs.com/Tangf/archive/2006/01/06/312654.html ┕MIFtoSHP通用转换工具:http://www.cnblogs.com/Files/Tangf/MIFtoSHP.rar MIFtoTAB and TABtoMIF(MIF和TAB互转小工具) http://www.cnblogs.com/Tangf/archive/2006/01/01/309375.html ┕MIFandTAB互转工具:http://www.cnblogs.com/Files/Tangf/MIFandTAB.rar 『浪人|努力』唐丰,Rover.Tang 2006.08.05

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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