0 0

jnative 调用c++的dll中对象内的方法。5

这个是h文件:这里的h文件内是一个对象,jnative无法找到这个对象内的方法。例如login之类的方法。请问各位大神应该如何使用jnative才可以调用到这内部的方法。cpp和h文件没办法修改,是对方给的,我这边只是调用。我用方法工具看也看不到这些方法。
class CSHINE 
{
public:
    CSHINE();
    virtual ~CSHINE();
    BOOL InitShineHttp();
    bool login(CString& strErr,CString url,CString user,CString pwd);
    bool logout();
    bool send(CString& str);
    bool recv(CString& str);
    bool downloadfile(CString bstrXml, CString bstrDestFn);
    bool geterror(CString& str);
    IHttpOPPtr m_Http_OP;
    IMainPtr m_IMainPtr;

};

这个是cpp文件:
// SHINE.cpp: implementation of the CSHINE class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "TEST_SHINEHTTP.h"
#include "SHINE.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CSHINE::CSHINE()
{

}

CSHINE::~CSHINE()
{

}
BOOL CSHINE::InitShineHttp()
{
HRESULT hr;

CLSID Clsid;
::CLSIDFromProgID(L"ShineHttp.Main.1",&Clsid);
hr=::CoCreateInstance(Clsid,NULL,
CLSCTX_INPROC_SERVER,__uuidof(IMain),(void**)&m_IMainPtr);
if(FAILED(hr))
{
return false;
}
return true;

// HRESULT hr;
// CLSID Clsid;
::CLSIDFromProgID(L"ShineHttp.Main.1",&Clsid);
hr=::CoCreateInstance(Clsid,NULL,
CLSCTX_INPROC_SERVER,__uuidof(IMain),(void**)&m_IMainPtr);
if(FAILED(hr))
{
// CSys_mgr::instance()->write_log("初始化ShineHttp失败...\r\n");
AfxMessageBox("初始化ShineHttp失败...");
return false;
}

return true;
}
//登录
bool CSHINE::login(CString& strErr,CString url,CString user,CString pwd)
{
m_Http_OP = m_IMainPtr->GetHttpOP();
BOOL b = m_Http_OP->Login( _bstr_t(url),
_bstr_t(user),
_bstr_t(pwd));

if(!b)
{
CString strErr;
strErr.Format("登陆失败: %s", (char*)(_bstr_t)m_Http_OP->GetLastError());
return false;
}
return true;
}
//退出登录
bool CSHINE::logout()
{
m_Http_OP->Logout();
return true;
}
//发送数据
bool CSHINE::send(CString& str)
{
return m_Http_OP->SendData((_bstr_t)str);
}
//接收数据
bool CSHINE::recv(CString& str)
{
BSTR bstrResponse;
int ret = m_Http_OP->RecvData(&bstrResponse);
str = (char*)(_bstr_t)bstrResponse;
::SysFreeString(bstrResponse);
return ret;
}
//下载文件
bool CSHINE::downloadfile(CString bstrXml, CString bstrDestFn)
{
return m_Http_OP->DownLoadFile((_bstr_t)bstrXml,(_bstr_t)bstrDestFn);
}
//获取错误信息
bool CSHINE::geterror(CString& str)
{
str.Format("%s",(char*)(_bstr_t)m_Http_OP->GetLastError());
return true;
}
2014年10月15日 14:40
目前还没有答案

相关推荐

    jnative 1.3,1.4版本 外加java 调用c++ dll 案例

    jnative 1.3,1.4版本 外加java 调用c++ dll 案例 整体打包 案例可用 强调 jnative调用c++ 不够精准方法名会有偏移

    JAVA调用C/C++ DLL文件方法

    JNI,JNATIVE,JAWIN 使用Java调用DLL动态链接库的方案我知道的有四种:JNI,Jnative,Jawin,Jacob

    JNative用java调用动态库VC++

    因工作的缘故,有机会接触了Java本地方法调用(JNI)。本文中记下了初试JNI的过程和一点点体会。 使用Java的JNI调用C/C++的动态联结库有个固定的步骤,下面将以一个最简单的HelloWorld例子程序来说明调用过程。这个...

    JNative所有文件

    JNative调用c++编写的DLL文件必要的jar包和相关必要文件

    jnative

    Java调用c++的dll文件

    java操作进程

    因为java没办法直接操作进程,这是我自己用C++写的一个DLL,通过jNative(内含Jnative.jar包)调用进行一些进程的操作

    java开源包1

    JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...

    JAVA上百实例源码以及开源项目

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    JAVA上百实例源码以及开源项目源代码

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    java开源包11

    JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...

    java开源包2

    JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...

    java开源包3

    JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...

    java开源包6

    JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...

    java开源包5

    JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...

    java开源包10

    JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...

    java开源包4

    JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...

    java开源包8

    JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...

    java开源包7

    JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...

    java开源包9

    JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...

Global site tag (gtag.js) - Google Analytics