-
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调用c++ 不够精准方法名会有偏移
JNI,JNATIVE,JAWIN 使用Java调用DLL动态链接库的方案我知道的有四种:JNI,Jnative,Jawin,Jacob
因工作的缘故,有机会接触了Java本地方法调用(JNI)。本文中记下了初试JNI的过程和一点点体会。 使用Java的JNI调用C/C++的动态联结库有个固定的步骤,下面将以一个最简单的HelloWorld例子程序来说明调用过程。这个...
JNative调用c++编写的DLL文件必要的jar包和相关必要文件
Java调用c++的dll文件
因为java没办法直接操作进程,这是我自己用C++写的一个DLL,通过jNative(内含Jnative.jar包)调用进行一些进程的操作
JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...
在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...
在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...
JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...
JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...
JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...
JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...
JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...
JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...
JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...
JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...
JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...
JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...