调用动态库!

#include<windows.h>

#include<iostream>

//客户端初始化 获取handle上下

typedef int(*CltSocketInit)(void **handle);

//客户端发报文

typedef int(*CltSocketSend)(void *handle, unsigned char *buf, int buflen);

//客户端收报文

typedef int(*CltSocketRev)(void *handle, unsigned char *buf, int *buflen);

//客户端释放资源

typedef int(*CltSocketDestory)(void *handle);//以上都是指针函数

int main(){

HINSTANCE hinstance = NULL;

hinstance = ::LoadLibrary("D:\\SocketClient.dll");//获得句柄

CltSocketInit cltSocketInit = (CltSocketInit)GetProcAddress(hinstance, "cltSocketInit");//获取函数地址传给函数指针!

CltSocketSend cltSocketSend = (CltSocketSend)GetProcAddress(hinstance, "cltSocketSend");

CltSocketRev cltSocketRev = (CltSocketRev)::GetProcAddress(hinstance, "cltSocketRev");

CltSocketDestory cltSocketDestory = (CltSocketDestory)::GetProcAddress(hinstance, "cltSocketDestory");

void *handle = NULL;

unsigned char buf[100];

int buflen = 10;

memcpy(buf, "ddddddddddssssssssss", 10);

unsigned char out[100] = { 0 };

int outlen = 0;

int ret = cltSocketInit(&handle);

ret = cltSocketSend(handle, buf, buflen);

ret = cltSocketRev(handle, out, &outlen);

ret = cltSocketDestory(handle);

printf("out:%s", out);

system("pause");

}

时间: 2024-10-12 20:52:14

调用动态库!的相关文章

调用动态库时声明的参数个数不一致导致的问题

问题: 原因:调用动态库时声明的参数个数不一致.  本文用菊子曰发布

动态调用动态库方法 .so

关于动态调用动态库方法说明 一.       动态库概述 1.  动态库的概念 日常编程中,常有一些函数不需要进行编译或者可以在多个文件中使用(如数据库输入/输 出操作或屏幕控制等标准任务函数).可以事先对这些函数进行编译,然后将它们放置在一些特殊的目标代码文件中,这些目标代码文件就称为库.库文件中的函数 可以通过连接程序与应用程序进行链接,这样就不必在每次开发程序时都对这些通用的函数进行编译了. 动态库是一种在已经编译完毕的程序开始启动运行时,才被加载来调用其中函数的库.其加载方式与静态库截然

Android底层笔记:APP通过JNI调用动态库.so

开发环境: 平板电脑:FSPAD-733,原理上来说任何支持安卓的开发板都可以: eclipse:使用的是iTOP-4412开发板提供的eclipse安卓开发包: Ubuntu:使用的是FSPAD-733虚拟机开发环境,原理上来说任何开发包提供的虚拟机环境都是可以的. 加载库名,然后系统自动到库目录下找.so动态库 目录/库文件名 loadLibrary ? ? ? du -mh tags androidL/art/ vi -t Runtim_nativeLoad ? ? ? javah -jn

调用动态库

1.简介 2.DLL的调用功能 3.适合的范围 4.演示

关于bcb调用动态库,contains invalid OMF record, type 0x21 (possibly COFF)问题

今天用C++Builder6.0 调用三方lib文件时,编译的时候出现如下错误: “contains invalid OMF record, type 0x21 (possibly COFF)” 才知道这个lib文件是别人用VC做的,要在C++Builder下面使用的,必须转换成CB格式的 这才想起调用CB安装目录下的coff2omf工具:需要cmd 操作,忘了一通了,查查文档,转换成功, 现在记录一下. 先把需要转换的VC的ml.lib放在C盘根目录下, 然后生成新的C++Builder格式下

浅谈C++ 动态库与静态库的调用

一.调用静态库文件:两种方式:1 使用VS工具 1).工具>选项>项目和解决方案>VC++目录中设置包含文件和库文件的目录 2)cpp中包含头文件,以及要用的命名空间,然后即可调用相关的东西2.不通过设置目录的方式: 1)cpp中包含头文件 2)cpp中加入#pragma comment(lib,"..\\debug\\testlib.lib")二:调用动态库文件包含头文件#include <Windows.h>[code=cpp]typedef int

Live555 中的客户端动态库.so的调用方式之一 程序中调用

1.  打开动态链接库:    #include <dlfcn.h>    void *dlopen(const char *filename, int flag);    该函数返回操作句柄,如:    void *pHandle = dlopen(strSoFilePath, RTLD_LAZY); 2.  取动态对象地址:    #include <dlfcn.h>    void *dlsym(void *pHandle, char *symbol);    dlsym根据

VS之动态库实现和调用

程序开发中,经常会使用到动态库,那么动态库该如何实现和调用呢?本文通过一个简单的例子实现. 使用工具:VS2008 使用语言:C++ 开发步骤: 1.新建动态库程序 1.1新建调用类和类中函数的动态库 新建类,在.h和.cpp文件顶部分别添加定义,并在类名前加上导出标志 DllFunc.h #pragma once #ifdef MY_DLL_EXPORTS #define MY_DLL_API __declspec(dllexport) #else #define MY_DLL_API __d

引用dll动态库,动态库中弹出对话框输入,将输入参数,作为变量继续调用。

在做支付项目时,引用动态库,动态库弹出支付宝或者微信的支付码,继而接收.最终将结果返回给调用动态库方法. 首先,动态库接收的是一个string 类型的xml,如 public string Pay(string inputxml){...},继而弹出一个form,可以在动态库项目中新增一个windows窗体项目 在窗体项目中,添加需要返回的支付码,即text需要返回给dll处理的条形码,窗口如下: 代码如下: public partial class ShowDialog : Form { pu