求指教、。。。关于调用so文件
生活随笔
收集整理的這篇文章主要介紹了
求指教、。。。关于调用so文件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
============問題描述============
今天同事給我發來一個文件,說讓我通過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++代碼。。
看看這個http://cherishlc.iteye.com/blog/1756762
轉載于:https://www.cnblogs.com/lianxu61/p/4035803.html
總結
以上是生活随笔為你收集整理的求指教、。。。关于调用so文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle 主键删除,联合主键的创建
- 下一篇: Mac上Homebrew的使用 (Hom