c++文件调用dll

include “stdafx.h”

include

pragma once

ifndef SKYEYECALL_20170119

define SKYEYECALL_20170119

typedef int(*lpFun)(int, int);
typedef int(setEndPoint)(const char );
typedef int(sendStartInfo)(const char );
typedef int(*sendStopInfo)(int);
typedef int(sendOperationInfo)(const char );
typedef int(sendFileByPath)(const char );
typedef int(sendFileByContent)(const char , size_t, const char*);
extern const wchar_t *m_uri;

extern char* UnicodeToUtf8(const wchar_t* unicode);

extern wchar_t* CharToWchar(char* c);

class SkyEyeCall
{
public:
SkyEyeCall();
void SetEndPoint();
void SendStartInfo(const wchar_t *);
void SendStopInfo(int);
void SendOperationInfo(const wchar_t *);
void SendFileByPath(const wchar_t *);
void SendFileByContent(const wchar_t , size_t, const wchar_t);
~SkyEyeCall();
public:
HINSTANCE m_hDll;
/*setEndPoint m_funSetEndPoint;
sendStartInfo m_sendStartInfo;
sendStopInfo m_sendStopInfo;*/
};

endif // !

cpp文件

include “stdafx.h”

include”stdio.h”

include”stdlib.h”

include”windows.h”

include

include “SkyEyeCall.h”

using namespace std;

char* UnicodeToUtf8(const wchar_t* unicode)
{
int len;
len = WideCharToMultiByte(CP_UTF8, 0, unicode, -1, NULL, 0, NULL, NULL);
char szUtf8 = (char)malloc(len + 1);
memset(szUtf8, 0, len + 1);
WideCharToMultiByte(CP_UTF8, 0, unicode, -1, szUtf8, len, NULL, NULL);
return szUtf8;
}

wchar_t* CharToWchar(char* c)
{
int len = MultiByteToWideChar(CP_ACP, 0, c, strlen(c), NULL, 0);
wchar_t *m_wchar = new wchar_t[len + 1];
MultiByteToWideChar(CP_ACP, 0, c, strlen(c), m_wchar, len);
m_wchar[len] = ‘\0’;
return m_wchar;
}

const wchar_t *m_uri = L”http://172.17.100.148:8094/api/v1/“;
SkyEyeCall::SkyEyeCall()
{
m_hDll = NULL;
m_hDll = LoadLibraryA(“H3dClientService.dll”);
cout << m_hDll << endl;
}

SkyEyeCall::~SkyEyeCall()
{
if (m_hDll != NULL)
{
FreeLibrary(m_hDll);
}
m_hDll = NULL;
}

void SkyEyeCall::SetEndPoint()
{
if (m_hDll)
{
setEndPoint FunSetEndPoint;
FunSetEndPoint = (setEndPoint)GetProcAddress(m_hDll, “skyeye_set_api_endpoint”);
if (FunSetEndPoint != NULL)
{
FunSetEndPoint(UnicodeToUtf8(m_uri));
}
}
}

void SkyEyeCall::SendStartInfo(const wchar_t *editor)
{
if (m_hDll)
{
sendStartInfo FunSendStartInfo;
FunSendStartInfo = (sendStartInfo)GetProcAddress(m_hDll, “skyeye_send_start_info”);
if (FunSendStartInfo != NULL)
{
FunSendStartInfo(UnicodeToUtf8(editor));
}
}
}

void SkyEyeCall::SendOperationInfo(const wchar_t *op)
{
if (m_hDll)
{
sendOperationInfo FunSendOperationInfo;
FunSendOperationInfo = (sendOperationInfo)GetProcAddress(m_hDll, “skyeye_send_operation_info”);
if (FunSendOperationInfo != NULL)
{
FunSendOperationInfo(UnicodeToUtf8(op));
}
}
}

void SkyEyeCall::SendFileByPath(const wchar_t *filePath)
{
if (m_hDll)
{
sendFileByPath FunSendFileByPath;
FunSendFileByPath = (sendFileByPath)GetProcAddress(m_hDll, “skyeye_send_file_by_path”);
if (FunSendFileByPath != NULL)
{
FunSendFileByPath(UnicodeToUtf8(filePath));
}
}
}

void SkyEyeCall::SendFileByContent(const wchar_t content, size_t size, const wchar_t fileName)
{
if (m_hDll)
{
sendFileByContent FunSendFileByContent;
FunSendFileByContent = (sendFileByContent)GetProcAddress(m_hDll, “skyeye_send_file_by_content”);
if (FunSendFileByContent != NULL)
{
FunSendFileByContent(UnicodeToUtf8(content), size, UnicodeToUtf8(fileName));
}
}
}

void SkyEyeCall::SendStopInfo(int exitId)
{
if (m_hDll)
{
sendStopInfo FunSendStopInfo;
FunSendStopInfo = (sendStopInfo)GetProcAddress(m_hDll, “skyeye_send_stop_info”);
if (FunSendStopInfo != NULL)
{
FunSendStopInfo(exitId);
}
}

}

调用的接口文件

pragma once

ifdef __cplusplus

extern “C” {

endif

/**
设置服务API地址,如:http://172.17.100.148:30000

如果不调用,则会用默认地址。如果调用则必须在最开始调用。

@return 0 表示成功,-1表示失败,比如参数不是个合法的url
*/
int skyeye_set_api_endpoint(const char *ep);

/**
发送启动信息
@param editor 编辑器名称。不能是null。utf8编码
@return 0表示成功,-1表示失败
*/
int skyeye_send_start_info(const char *editor);

/**
发送程序终止信息
@param ec 退出码,0表示正常
@return 0表示成功,-1表示失败。
*/
int skyeye_send_stop_info(int ec);

/**
发送操作信息
@param cmd 操作的名称。utf8编码
@return 0表示成功,-1表示失败。
*/
int skyeye_send_operation_info(const char *cmd);

/**
发送文件
@param filepath 文件路径。utf8编码
@return 0表示成功,-1表示失败。
*/
int skyeye_send_file_by_path(const char *filepath);

/**
发送文件
@param content, len 要上传的文件的内容和长度
@param filename 用于保存文件的文件名,utf8编码
@return 0表示成功,-1表示失败。
*/
int skyeye_send_file_by_content(const char *content, size_t len, const char *filename);

ifdef __cplusplus

}

endif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip
综合小区管理系统管理系统按照操作主体分为管理员和用户。管理员的功能包括报修管理、车位管理、车位分配管理、出入管理、字典管理、房屋管理、物业费缴纳管理、公告管理、物业人员投诉管理、我的私信管理、物业人员管理、用户管理、管理员管理。用户的功能包括管理部门以及部门岗位信息,管理招聘信息,培训信息,薪资信息等。该系统采用了Mysql数据库,Java语言,Spring Boot框架等技术进行编程实现。 综合小区管理系统管理系统可以提高综合小区管理系统信息管理问题的解决效率,优化综合小区管理系统信息处理流程,保证综合小区管理系统信息数据的安全,它是一个非常可靠,非常安全的应用程序。 管理员权限操作的功能包括管理公告,管理综合小区管理系统信息,包括出入管理,报修管理,报修管理,物业费缴纳等,可以管理操作员。 出入管理界面,管理员在出入管理界面中可以对界面中显示,可以对招聘信息的招聘状态进行查看,可以添加新的招聘信息等。报修管理界面,管理员在报修管理界面中查看奖罚种类信息,奖罚描述信息,新增奖惩信息等。车位管理界面,管理员在车位管理界面中新增。公告管理界面,管理员在公告管理界面查看公告的工作状态,可以对公告的数据进行导出,可以添加新公告的信息,可以编辑公告信息,删除公告信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值