VB6调用VC6生成的DLL文件中的函数,大神帮忙解决有关问题

VB6调用VC6生成的DLL文件中的函数,大神帮忙解决问题
刚接触VB和VC请大神指点:
我用VC6生成了DLL文件(摄像机抓拍用的),在VC6中调用测试通过(连接设备可以抓拍),但是拿到VB6中调用函数,调用函数给的参数和VC6中调用给的参数是一样的,但是函数调用了,可总是无法实现抓拍,不知道哪里出错了,求大神给看看:
VC6:
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include <Windows.h>
#include "TFCNetSDK.h"
#include "WinCon.h"
#include <objbase.h>
#include <time.h>
#include <iostream>
#include <conio.h>

#define _WIN32_WINNT 0x0500
extern "C" WINBASEAPI HWND WINAPI GetConsoleWindow ();

extern "C" __declspec(dllexport) LONG _stdcall getlUserID(char *ip,char *name,char *password,int port); 
extern "C" __declspec(dllexport) LONG _stdcall getlRealHandle(LONG lUserID); 
extern "C" __declspec(dllexport) void _stdcall closelogin(LONG lUserID);
extern "C" __declspec(dllexport) char* _stdcall getphoto(LONG lRealHandle,char *url,char *jiqino);

BOOL APIENTRY DllMain( HANDLE hModule, 
                       DWORD  ul_reason_for_call, 
                       LPVOID lpReserved
 )
{
    return TRUE;
}

//用户登陆
LONG _stdcall getlUserID(char *ip,char *name,char *password,int port){
//初始化SDK
int a = TFC_NET_Init();

//登陆用户实体
UserLoginInfo_t UserLoginInfo;

//实体类赋值
strcpy(UserLoginInfo.userIPAddr.ipV4, ip);
strcpy(UserLoginInfo.szUserName, name);
strcpy(UserLoginInfo.szPassword, password);
//端口
UserLoginInfo.port = port;
//返回-1表示注册登陆失败
LONG lUserID = TFC_NET_Login(&UserLoginInfo, NULL);
if (lUserID == -1)
{
//查看原因
      printf("Login to Device failed! Error : %d\n", TFC_NET_GetLastError());
//printf("Login to Device failed! Error : %s\n", TFC_NET_GetErrorMsg(errorNO));
//停止运行
return -1;
}
return lUserID;
}
//调视频画面
LONG _stdcall getlRealHandle(LONG lUserID){
HWND hWnd = GetConsoleWindow();
TFC_REALPLAY ClientInfo  = { 0 };
ClientInfo.hPlayWnd       = hWnd;
ClientInfo.lChannel       = 1;
ClientInfo.lLinkMode      = TSoverTCP;
ClientInfo.csMultiCastIP = NULL;
ClientInfo.bWithaudio     = 1;
ClientInfo.lStreamidx     = STREAM_IDX_VIDEO_MAIN;
ShowWindow(hWnd,SW_HIDE);
    LONG lRealHandle = TFC_NET_Realplay(lUserID,&ClientInfo,NULL,NULL,1);

if (lRealHandle < 0)
{
  printf ("Start Play failed! Error : %d\n", TFC_NET_GetLastError());
    TFC_NET_Logout(lUserID);
TFC_NET_Cleanup();
    return -1;
}

//画面出现需要一点时间
Sleep(3000);

return lRealHandle;
}
//注销
void _stdcall closelogin(LONG lUserID){
TFC_NET_Logout(lUserID);
TFC_NET_Cleanup();
}
//抓拍
char* _stdcall getphoto(LONG lRealHandle,char *url,char *jiqino){
LONG catiureJPEG = NULL;
char *timename = new char[100];
//for(int i=0;i<1;i++){

SYSTEMTIME sys;
GetLocalTime(&sys);
/*printf( "%M%d%d %d:%d:%d.%d 星期\n",sys.wYear,sys.wMonth,sys.wDay,sys.wHour,sys.wMinute,sys.wSecond,sys.wMilliseconds,sys.wDayOfWeek);*/
char t[10];

strcpy(timename,url);
strcat(timename,itoa(sys.wYear,t,10));
strcat(timename,itoa(sys.wMonth,t,10));
strcat(timename,itoa(sys.wDay,t,10));
strcat(timename,itoa(sys.wHour,t,10));
strcat(timename,itoa(sys.wMinute,t,10));
strcat(timename,itoa(sys.wSecond,t,10));
strcat(timename,itoa(sys.wMilliseconds,t,10));
strcat(timename,".jpg");
//puts(timename);
const char *szFileName = timename;
catiureJPEG = TFC_NET_CaptureJPEG(lRealHandle,szFileName,NULL);

//}
return timename;
}

在VB6中调用上面VC6生成的dll:
Private Declare Function getlUserID Lib "Serverdll.dll" Alias "_getlUserID@16" (ByRef ip As String, ByRef name1 As String, ByRef Password As String, ByRef port As Integer) As Long
    Dim ip As String
    Dim name1 As String
    Dim Password As String
    Dim port As Integer
    Dim lUserID As Long
Private Declare Function getlRealHandle Lib "Serverdll.dll" Alias "_getlRealHandle@4" (ByRef lUserID As Long) As Long
    Dim lRealHandle As Long
Private Declare Function getphoto Lib "Serverdll.dll" Alias "_getphoto@12" (ByRef lRealHandle As Long, ByRef url As String, ByRef jiqino As String) As Byte