• 求指教、。。。关于调用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 ",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
  • 相关阅读:
    PDB文件详解
    C++模板常用功能讲解
    Windows下多线程编程(二)
    关于静态库中使用全局变量可能导致的问题
    js中的函数
    js中字符串的加密base64
    列表推导式
    函数和方法的区别
    xshell连不上虚拟机
    网络编程,并行,并发和协程
  • 原文地址:https://www.cnblogs.com/lianxu61/p/4083268.html
Copyright © 2020-2023  润新知