博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
求指教、。。。关于调用so文件
阅读量:5318 次
发布时间:2019-06-14

本文共 3573 字,大约阅读时间需要 11 分钟。

============问题描述============

今天同事给我发来一个文件,说让我通过android调用里面的函数文件是:
里面的内容是:
call_so.cpp文件的内容:
#pragma pack(1) //非常重要的申明,内存对齐的方法,影响sizeof()的结果
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include "operation_tools.h"
#include "call_so.h"
char uv_file_name[1024];
int uv_class_type = 1;
int uf_call_so_file(LPBYTE InHdib,RECT InArea)
{
    printf("InArea.left=%ld,right=%ld,top=%ld,bottom=%ld\r\n",InArea.left,InArea.right,InArea.top,InArea.bottom);
    return 1;
}
call_so.h的内容:
#ifndef __CALLSO__
#define __CALLSO__
int uf_call_so_file(LPBYTE InHdib,RECT InArea);
#endif
operation_tools.sh的内容:
#ifndef __OPERATIONTOOLS__
#define __OPERATIONTOOLS__
#include <sys/stat.h>
#include <new>
#include <iostream>
#include <cstdlib>
#include <math.h>
using namespace std;
typedef unsigned long       DWORD;
typedef int                 BOOL;
typedef unsigned char       BYTE;
typedef unsigned short      WORD;
typedef float               FLOAT;
//typedef DWORD far*         LPDWORD;
typedef DWORD *LPDWORD;
typedef unsigned char *           LPBYTE;
typedef int                 INT;
typedef unsigned int        UINT;
typedef unsigned int        *PUINT;
typedef long LONG;
#define pthread_t              HANDLE
#define pthread_mutex_t        HANDLE
#define pthread_cond_t         HANDLE
typedef void *HANDLE;
typedef HANDLE HLOCAL;
typedef LPBYTE HDIB;
#define LPSTR char*
#include <memory.h>
#include <string.h>
#ifndef _RECT_
#define _RECT_
struct _RECT
long left;
long top;
long right;
long bottom;
} ;
#ifndef _DECLARE_MAXVALUE
#define _DECLARE_MAXVALUE
typedef struct 
int Value;
int Dist;
double AngleNumber;
}MaxValue;
#endif
typedef _RECT RECT;
#define LMEM_MOVEABLE       0x0002
#define LMEM_ZEROINIT       0x0040
#define LHND                (LMEM_MOVEABLE | LMEM_ZEROINIT)
/*
typedef int BOOL;
typedef unsigned char BYTE;
typedef float FLOAT;
typedef FLOAT *PFLOAT;
typedef char CHAR;
typedef unsigned char UCHAR;
typedef unsigned char *PUCHAR;
typedef short SHORT;
typedef unsigned short USHORT;
typedef unsigned short *PUSHORT;
typedef long LONG;
typedef unsigned short WORD;
typedef unsigned long DWORD;
typedef long long LONGLONG;
typedef unsigned long long ULONGLONG;
typedef ULONGLONG *PULONGLONG;
typedef unsigned long ULONG;
typedef int INT;
typedef unsigned int UINT;
typedef unsigned int *PUINT;
typedef void VOID;
typedef char *LPSTR;
typedef const char *LPCSTR;
typedef wchar_t WCHAR;
typedef WCHAR *LPWSTR;
typedef const WCHAR *LPCWSTR;
typedef DWORD *LPDWORD;
typedef unsigned long UINT_PTR;
typedef UINT_PTR SIZE_T;
typedef LONGLONG USN;
typedef BYTE BOOLEAN;
typedef void *PVOID;
typedef struct _FILETIME {
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} FILETIME;
typedef union _ULARGE_INTEGER {
struct {
DWORD LowPart;
DWORD HighPart;
};
struct {
DWORD LowPart;
DWORD HighPart;
} u;
ULONGLONG QuadPart;
} ULARGE_INTEGER,
*PULARGE_INTEGER;
*/
#endif
#ifndef _POINT_
#define _POINT_
struct _POINT
{
int x;
int y;
};
typedef _POINT POINT;
#endif
/*
#ifndef _NEW_
#define _NEW_
// 重载了全局的new操作符 
void* operator new (unsigned int size)
{
cout << "::new" << endl;
cout << size << endl;
if(!size)
size = 1;
void *mem = malloc(size);
cout << mem << endl;
return mem;
}
#endif
#ifndef _DELETE_
#define _DELETE_
// 重载了全局的delete操作符 
void operator delete (void *ptr)
{
cout << "::delete" << endl;
cout << ptr << endl;
if(!ptr)
return;
free(ptr);
}
#endif
*/
//#include "cstring_linux/cstring.h"
//#include "../../sdk/inc_all/L999_struct.h"
//#include "../../sdk/inc_all/wb_struct.h"
//#include "../MYJC/MYJC.h"
//#include "control_lgq.h"
#endif
call_so.o的文件点不开。。。
     
  问题是我需要调用那个文件,,如何调用????
                  本人是新手,求大神们指导
   如果有dome最好。。。。

============解决方案1============

你这是android调用c++代码。。
看看这个

转载于:https://www.cnblogs.com/lianxu61/p/4035803.html

你可能感兴趣的文章
poj 题目分类
查看>>
An easy problem
查看>>
windows 安装yaml支持和pytest支持等
查看>>
读书笔记:季羡林关于如何做研究学问的心得
查看>>
面向对象的优点
查看>>
[转载]unix环境高级编程备忘:理解保存的设置用户ID,设置用户ID位,有效用户ID,实际用户ID...
查看>>
堆排序
查看>>
套接口和I/O通信
查看>>
thinkpaidE480office安装文件夹
查看>>
eclipse中git插件配置 编辑
查看>>
SQL获取每月最后一天记录
查看>>
crontab 使用整理
查看>>
【TOJ 2406】Power Strings(KMP找最多重复子串)
查看>>
hdu 1010
查看>>
keystone源码分析(一)——Paste Deploy的应用
查看>>
世界是座孤儿院
查看>>
VUE路由history模式坑记--NGINX
查看>>
线程同步-使用SimaphoreSlim类
查看>>
Spring整合MyBatis
查看>>
Java/Java Web中乱码解决汇总
查看>>