如果在vc.dll的参数是结构体:
typedef struct{
BYTE m_bRemoteChannel;
BYTE m_bSendMode;
BYTE m_nImgFormat;
char *m_sIPAddress;
char *m_sUserName;
char *m_sUserPassword;
BOOL m_bUserCheck;
HWND m_hShowVideo;
}CLIENT_VIDEOINFO, *PCLIENT_VIDEOINFO;在vb6中调用dll时
指针参数应该如何如赋值呢????Private Type CLIENT_VIDEOINFO
m_bRemoteChannel As Byte
m_bSendMode As Byte
m_bImgFormat As Byte
m_sIPAddress As String
m_sUserName As String
m_sUserPassword As String
m_bUserCheck As Long
m_hShowVideo As Long
End TypePrivate Declare Function MP4_ClientStart Lib "hikclient.dll" (nClentInfo As CLIENT_VIDEOINFO, ByVal lpEnumFunc As Long) As Long
Dim CV As CLIENT_VIDEOINFODim strUserName As String * 127
Dim strUserPassWord As String * 127
Dim strIPAddress As String
'
strUserName = "123"
strUserPassWord = "w"
strIPAddress = "192.168.52.218"CV.m_bRemoteChannel = 0
CV.m_bSendMode = 0
CV.m_bUserCheck = 1
CV.m_sUserName = strUserName
CV.m_sUserPassword = strUserPassWord
CV.m_bImgFormat = 0
CV.m_sIPAddress = strIPAddress
CV.m_hShowVideo = Picture1.hWnd调用dll函数一直不成功 Ret = MP4_ClientStart(CV, 0&)请问我该如何如处理!
typedef struct{
BYTE m_bRemoteChannel;
BYTE m_bSendMode;
BYTE m_nImgFormat;
char *m_sIPAddress;
char *m_sUserName;
char *m_sUserPassword;
BOOL m_bUserCheck;
HWND m_hShowVideo;
}CLIENT_VIDEOINFO, *PCLIENT_VIDEOINFO;在vb6中调用dll时
指针参数应该如何如赋值呢????Private Type CLIENT_VIDEOINFO
m_bRemoteChannel As Byte
m_bSendMode As Byte
m_bImgFormat As Byte
m_sIPAddress As String
m_sUserName As String
m_sUserPassword As String
m_bUserCheck As Long
m_hShowVideo As Long
End TypePrivate Declare Function MP4_ClientStart Lib "hikclient.dll" (nClentInfo As CLIENT_VIDEOINFO, ByVal lpEnumFunc As Long) As Long
Dim CV As CLIENT_VIDEOINFODim strUserName As String * 127
Dim strUserPassWord As String * 127
Dim strIPAddress As String
'
strUserName = "123"
strUserPassWord = "w"
strIPAddress = "192.168.52.218"CV.m_bRemoteChannel = 0
CV.m_bSendMode = 0
CV.m_bUserCheck = 1
CV.m_sUserName = strUserName
CV.m_sUserPassword = strUserPassWord
CV.m_bImgFormat = 0
CV.m_sIPAddress = strIPAddress
CV.m_hShowVideo = Picture1.hWnd调用dll函数一直不成功 Ret = MP4_ClientStart(CV, 0&)请问我该如何如处理!
解决方案 »
- 得到数据表中新插入的数据
- 在editctrl 中限制字符
- 急]点阵字库的字符显示问题
- 用SQL语句往Access里面插入时间的时候, 如何处理?
- mfc写的OCX控件,怎么才能在事件里传递字符串?
- 如果只有Mycom.dll(com),在VC下没有mycom_i.c,mycom.h等。怎样像VB,或者Delphi拖拽使用??
- 为什么我在vc中不能对有些变量添加监视呢?谢谢
- 一个从MFC类继承下来的控件(例如CListCtrl),将头文件和cpp文件加入工程后怎样将其加入类向导列表中啊?
- 一个简单关于对话框的问题------->>
- VS的mfc中如何将位图背景透明化
- 网关压力测试程序,多线程问题
- 如何得到文件的全路径
有没有用 extern "C" {long __stdcall dllexport MP4_ClientStart(CLIENT_VIDEOINFO cv,long lpEnumFunc);}之类的东西;再有Ret = MP4_ClientStart(CV, 0&)
里面的0&,哪里是 byval呀?
CPLAYER_API LONG __stdcall MP4_ClientStart(PCLIENT_VIDEOINFO pClientinfo,void(CALLBACK *ReadDataCallBack)(DWORD nPort,UCHAR *pPacketBuffer,DWORD nPacketSize));void CAaDlg::OnOK()
{
// TODO: Add extra validation here
CLIENT_VIDEOINFO dlg;
dlg.m_bRemoteChannel=0;
dlg.m_bSendMode=0;
dlg.m_bUserCheck=TRUE;
dlg.m_sUserName = "123";
dlg.m_sUserPassword="w";
dlg.m_nImgFormat=0;
dlg.m_sIPAddress="192.168.6.216";
dlg.m_hShowVideo=GetDlgItem(IDC_video)->GetSafeHwnd();
long a=MP4_ClientStart(&dlg,NULL);
}
这里是vc代码里面 dll里肯定有 别的初始化函数我都执行成功了!
Private Declare Function GetOpenFileName Lib "comdlg32.dll " Alias "GetOpenFileNameA " (pOpenfilename As OPENFILENAME) As Long
Private Declare Function GetSaveFileName Lib "comdlg32.dll " Alias "GetSaveFileNameA " (pOpenfilename As OPENFILENAME) As Long Private Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type Public Function OpenFileDlg(hwnd As Long,Title as string) As String
Dim OFDlg As OPENFILENAME
With OFDlg
.lStructSize = Len(ofd)
.hwndOwner = hwnd
.hInstance = App.hInstance
.lpstrFilter = "*.* " + Chr$(0) + "*.* " + Chr$(0)
.lpstrFile = Space$(254)
.lpstrFileTitle = Space$(254)
.nMaxFile = 255
.nMaxFileTitle = 255
.lpstrInitialDir = CurDir
.lpstrTitle = title
.flags = 0
End With
If GetOpenFileName(ofd) Then OpenFileDlg = Left(OFDlg.lpstrFile, InStr(OFDlg.lpstrFile, Chr(0)) - 1)
End Function Public Function SaveFileDlg(hwnd As long,Title as string) As String
Dim SFDlg As OPENFILENAME
With SFDlg
.lStructSize = Len(SFDlg)
.hwndOwner = hwnd
.hInstance = App.hInstance
.lpstrFile = Space(254)
.lpstrFileTitle = Space(254)
.nMaxFile = 255
.nMaxFileTitle = 255
.lpstrInitialDir = App.Path
.flags = 6148 Or &H2
.lpstrFilter = "*.* " + Chr$(0) + "*.* "
.lpstrTitle = title
If GetSaveFileName(SFDlg) > = 1 Then
SaveFileDlg = Left(.lpstrFile, InStr(.lpstrFile, Chr(0)) - 1)
End If
End With
End Function