/*
* jni.h
* Java Native Interface.
*
* Copyright (c) 1996, 1997
* Transvirtual Technologies, Inc. All rights reserved.
*
* See the file "license.terms" for information on usage and redistribution
* of this file.
*/ #ifndef __jni_h
#define __jni_h #include <stdio.h>
#include <stdarg.h>
#include "jtypes.h"
#include "jmalloc.h" #define JNIEXPORT
#define JNICALL struct JNIEnv_;
struct JNINativeInterface;
struct JavaVM_;
struct JNINativeMethod_;
struct JavaVMAttachArgs;
struct JavaVMInitArgs;
typedef const struct JNINativeInterface* JNIEnv;
typedef const struct JNIInvokeInterface* JavaVM;
typedef struct JNINativeMethod_ JNINativeMethod;
typedef struct JavaVMAttachArgs ThreadAttachArgs;
typedef struct JavaVMInitArgs JavaVMInitArgs; typedef void* jmethodID;
typedef void* jfieldID; #define JNI_TRUE 1
#define JNI_FALSE 0 #define JNI_COMMIT 1
#define JNI_ABORT 2 struct JNINativeInterface { void* reserved0;
void* reserved1;
void* reserved2;
void* reserved3;
jint (*GetVersion) (JNIEnv*);
jclass (*DefineClass) (JNIEnv*, jobject, const jbyte*, jsize);
jclass (*FindClass) (JNIEnv*, const char*);
void* reserved4;
void* reserved5;
void* reserved6;
jclass (*GetSuperClass) (JNIEnv*, jclass);
jbool (*IsAssignableFrom) (JNIEnv*, jclass, jclass);
void* reserved7;
jint (*Throw) (JNIEnv*, jobject);
jint (*ThrowNew) (JNIEnv*, jclass, const char*);
jthrowable (*ExceptionOccurred) (JNIEnv*);
void (*ExceptionDescribe) (JNIEnv*);
void (*ExceptionClear) (JNIEnv*);
void (*FatalError) (JNIEnv*, const char*);
void* reserved8;
void* reserved9;
jref (*NewGlobalRef) (JNIEnv*, jref);
void (*DeleteGlobalRef) (JNIEnv*, jref);
void (*DeleteLocalRef) (JNIEnv*, jref);
jbool (*IsSameObject) (JNIEnv*, jobject, jobject);
void* reserved10;
void* reserved11;
jobject (*AllocObject) (JNIEnv*, jclass);
jobject (*NewObject) (JNIEnv*, jclass, jmethodID, ...);
jobject (*NewObjectV) (JNIEnv*, jclass, jmethodID, va_list);
jobject (*NewObjectA) (JNIEnv*, jclass, jmethodID, jvalue*);
jclass (*GetObjectClass) (JNIEnv*, jobject);
jbool (*IsInstanceOf) (JNIEnv*, jobject, jclass);
jmethodID (*GetMethodID) (JNIEnv*, jclass, const char*, const char*);
jobject (*CallObjectMethod) (JNIEnv*, jobject, jmethodID, ...);
jobject (*CallObjectMethodV) (JNIEnv*, jobject, jmethodID, va_list);
jobject (*CallObjectMethodA) (JNIEnv*, jobject, jmethodID, jvalue*);
jbool (*CallBooleanMethod) (JNIEnv*, jobject, jmethodID, ...);
jbool (*CallBooleanMethodV) (JNIEnv*, jobject, jmethodID, va_list);
jbool (*CallBooleanMethodA) (JNIEnv*, jobject, jmethodID, jvalue*);
jbyte (*CallByteMethod) (JNIEnv*, jobject, jmethodID, ...);
jbyte (*CallByteMethodV) (JNIEnv*, jobject, jmethodID, va_list);
jbyte (*CallByteMethodA) (JNIEnv*, jobject, jmethodID, jvalue*);
jchar (*CallCharMethod) (JNIEnv*, jobject, jmethodID, ...);
jchar (*CallCharMethodV) (JNIEnv*, jobject, jmethodID, va_list);
jchar (*CallCharMethodA) (JNIEnv*, jobject, jmethodID, jvalue*);
jshort (*CallShortMethod) (JNIEnv*, jobject, jmethodID, ...);
jshort (*CallShortMethodV) (JNIEnv*, jobject, jmethodID, va_list);
jshort (*CallShortMethodA) (JNIEnv*, jobject, jmethodID, jvalue*);
jint (*CallIntMethod) (JNIEnv*, jobject, jmethodID, ...);
jint (*CallIntMethodV) (JNIEnv*, jobject, jmethodID, va_list);
jint (*CallIntMethodA) (JNIEnv*, jobject, jmethodID, jvalue*);
jlong (*CallLongMethod) (JNIEnv*, jobject, jmethodID, ...);
jlong (*CallLongMethodV) (JNIEnv*, jobject, jmethodID, va_list);
jlong (*CallLongMethodA) (JNIEnv*, jobject, jmethodID, jvalue*);
jfloat (*CallFloatMethod) (JNIEnv*, jobject, jmethodID, ...);
jfloat (*CallFloatMethodV) (JNIEnv*, jobject, jmethodID, va_list);
jfloat (*CallFloatMethodA) (JNIEnv*, jobject, jmethodID, jvalue*);
jdouble (*CallDoubleMethod) (JNIEnv*, jobject, jmethodID, ...);
jdouble (*CallDoubleMethodV) (JNIEnv*, jobject, jmethodID, va_list);
jdouble (*CallDoubleMethodA) (JNIEnv*, jobject, jmethodID, jvalue*);
void (*CallVoidMethod) (JNIEnv*, jobject, jmethodID, ...);
void (*CallVoidMethodV) (JNIEnv*, jobject, jmethodID, va_list);
void (*CallVoidMethodA) (JNIEnv*, jobject, jmethodID, jvalue*);
jobject (*CallNonvirtualObjectMethod) (JNIEnv*, jobject, jclass, jmethodID, ...);
jobject (*CallNonvirtualObjectMethodV) (JNIEnv*, jobject, jclass, jmethodID, va_list);
jobject (*CallNonvirtualObjectMethodA) (JNIEnv*, jobject, jclass, jmethodID, jvalue*);
jbool (*CallNonvirtualBooleanMethod) (JNIEnv*, jobject, jclass, jmethodID, ...);
jbool (*CallNonvirtualBooleanMethodV) (JNIEnv*, jobject, jclass, jmethodID, va_list);
jbool (*CallNonvirtualBooleanMethodA) (JNIEnv*, jobject, jclass, jmethodID, jvalue*);
jbyte (*CallNonvirtualByteMethod) (JNIEnv*, jobject, jclass, jmethodID, ...);
jbyte (*CallNonvirtualByteMethodV) (JNIEnv*, jobject, jclass, jmethodID, va_list);
jbyte (*CallNonvirtualByteMethodA) (JNIEnv*, jobject, jclass, jmethodID, jvalue*);
jchar (*CallNonvirtualCharMethod) (JNIEnv*, jobject, jclass, jmethodID, ...);
jchar (*CallNonvirtualCharMethodV) (JNIEnv*, jobject, jclass, jmethodID, va_list);
jchar (*CallNonvirtualCharMethodA) (JNIEnv*, jobject, jclass, jmethodID, jvalue*);
jshort (*CallNonvirtualShortMethod) (JNIEnv*, jobject, jclass, jmethodID, ...);
jshort (*CallNonvirtualShortMethodV) (JNIEnv*, jobject, jclass, jmethodID, va_list);
jshort (*CallNonvirtualShortMethodA) (JNIEnv*, jobject, jclass, jmethodID, jvalue*);
jint (*CallNonvirtualIntMethod) (JNIEnv*, jobject, jclass, jmethodID, ...);
jint (*CallNonvirtualIntMethodV) (JNIEnv*, jobject, jclass, jmethodID, va_list);
jint (*CallNonvirtualIntMethodA) (JNIEnv*, jobject, jclass, jmethodID, jvalue*);
jlong (*CallNonvirtualLongMethod) (JNIEnv*, jobject, jclass, jmethodID, ...);
jlong (*CallNonvirtualLongMethodV) (JNIEnv*, jobject, jclass, jmethodID, va_list);
jlong (*CallNonvirtualLongMethodA) (JNIEnv*, jobject, jclass, jmethodID, jvalue*);
jfloat (*CallNonvirtualFloatMethod) (JNIEnv*, jobject, jclass, jmethodID, ...);
jfloat (*CallNonvirtualFloatMethodV) (JNIEnv*, jobject, jclass, jmethodID, va_list);
jfloat (*CallNonvirtualFloatMethodA) (JNIEnv*, jobject, jclass, jmethodID, jvalue*);
jdouble (*CallNonvirtualDoubleMethod) (JNIEnv*, jobject, jclass, jmethodID, ...);
jdouble (*CallNonvirtualDoubleMethodV) (JNIEnv*, jobject, jclass, jmethodID, va_list);
jdouble (*CallNonvirtualDoubleMethodA) (JNIEnv*, jobject, jclass, jmethodID, jvalue*);
void (*CallNonvirtualVoidMethod) (JNIEnv*, jobject, jclass, jmethodID, ...);
void (*CallNonvirtualVoidMethodV) (JNIEnv*, jobject, jclass, jmethodID, va_list);
void (*CallNonvirtualVoidMethodA) (JNIEnv*, jobject, jclass, jmethodID, jvalue*);
jfieldID (*GetFieldID) (JNIEnv*, jclass, const char*, const char*);
jobject (*GetObjectField) (JNIEnv*, jobject, jfieldID);
jbool (*GetBooleanField) (JNIEnv*, jobject, jfieldID);
jbyte (*GetByteField) (JNIEnv*, jobject, jfieldID);
jchar (*GetCharField) (JNIEnv*, jobject, jfieldID);
jshort (*GetShortField) (JNIEnv*, jobject, jfieldID);
jint (*GetIntField) (JNIEnv*, jobject, jfieldID);
jlong (*GetLongField) (JNIEnv*, jobject, jfieldID);
jfloat (*GetFloatField) (JNIEnv*, jobject, jfieldID);
jdouble (*GetDoubleField) (JNIEnv*, jobject, jfieldID);
void (*SetObjectField) (JNIEnv*, jobject, jfieldID, jobject);
void (*SetBooleanField) (JNIEnv*, jobject, jfieldID, jbool);
void (*SetByteField) (JNIEnv*, jobject, jfieldID, jbyte);
void (*SetCharField) (JNIEnv*, jobject, jfieldID, jchar);
void (*SetShortField) (JNIEnv*, jobject, jfieldID, jshort);
void (*SetIntField) (JNIEnv*, jobject, jfieldID, jint);
void (*SetLongField) (JNIEnv*, jobject, jfieldID, jlong);
void (*SetFloatField) (JNIEnv*, jobject, jfieldID, jfloat);
void (*SetDoubleField) (JNIEnv*, jobject, jfieldID, jdouble);
jmethodID (*GetStaticMethodID) (JNIEnv*, jclass, const char*, const char*);
jobject (*CallStaticObjectMethod) (JNIEnv*, jclass, jmethodID, ...);
jobject (*CallStaticObjectMethodV) (JNIEnv*, jclass, jmethodID, va_list);
jobject (*CallStaticObjectMethodA) (JNIEnv*, jclass, jmethodID, jvalue*);
jbool (*CallStaticBooleanMethod) (JNIEnv*, jclass, jmethodID, ...);
jbool (*CallStaticBooleanMethodV) (JNIEnv*, jclass, jmethodID, va_list);
jbool (*CallStaticBooleanMethodA) (JNIEnv*, jclass, jmethodID, jvalue*);
jbyte (*CallStaticByteMethod) (JNIEnv*, jclass, jmethodID, ...);
jbyte (*CallStaticByteMethodV) (JNIEnv*, jclass, jmethodID, va_list);
jbyte (*CallStaticByteMethodA) (JNIEnv*, jclass, jmethodID, jvalue*);
jchar (*CallStaticCharMethod) (JNIEnv*, jclass, jmethodID, ...);
jchar (*CallStaticCharMethodV) (JNIEnv*, jclass, jmethodID, va_list);
jchar (*CallStaticCharMethodA) (JNIEnv*, jclass, jmethodID, jvalue*);
jshort (*CallStaticShortMethod) (JNIEnv*, jclass, jmethodID, ...);
jshort (*CallStaticShortMethodV) (JNIEnv*, jclass, jmethodID, va_list);
jshort (*CallStaticShortMethodA) (JNIEnv*, jclass, jmethodID, jvalue*);
jint (*CallStaticIntMethod) (JNIEnv*, jclass, jmethodID, ...);
jint (*CallStaticIntMethodV) (JNIEnv*, jclass, jmethodID, va_list);
jint (*CallStaticIntMethodA) (JNIEnv*, jclass, jmethodID, jvalue*);
jlong (*CallStaticLongMethod) (JNIEnv*, jclass, jmethodID, ...);
jlong (*CallStaticLongMethodV) (JNIEnv*, jclass, jmethodID, va_list);
jlong (*CallStaticLongMethodA) (JNIEnv*, jclass, jmethodID, jvalue*);
jfloat (*CallStaticFloatMethod) (JNIEnv*, jclass, jmethodID, ...);
jfloat (*CallStaticFloatMethodV) (JNIEnv*, jclass, jmethodID, va_list);
jfloat (*CallStaticFloatMethodA) (JNIEnv*, jclass, jmethodID, jvalue*);
jdouble (*CallStaticDoubleMethod) (JNIEnv*, jclass, jmethodID, ...);
jdouble (*CallStaticDoubleMethodV) (JNIEnv*, jclass, jmethodID, va_list);
jdouble (*CallStaticDoubleMethodA) (JNIEnv*, jclass, jmethodID, jvalue*);
void (*CallStaticVoidMethod) (JNIEnv*, jclass, jmethodID, ...);
void (*CallStaticVoidMethodV) (JNIEnv*, jclass, jmethodID, va_list);
void (*CallStaticVoidMethodA) (JNIEnv*, jclass, jmethodID, jvalue*);
jfieldID (*GetStaticFieldID) (JNIEnv*, jclass, const char*, const char*);
jobject (*GetStaticObjectField) (JNIEnv*, jclass, jfieldID);
jbool (*GetStaticBooleanField) (JNIEnv*, jclass, jfieldID);
jbyte (*GetStaticByteField) (JNIEnv*, jclass, jfieldID);
jchar (*GetStaticCharField) (JNIEnv*, jclass, jfieldID);
jshort (*GetStaticShortField) (JNIEnv*, jclass, jfieldID);
jint (*GetStaticIntField) (JNIEnv*, jclass, jfieldID);
jlong (*GetStaticLongField) (JNIEnv*, jclass, jfieldID);
jfloat (*GetStaticFloatField) (JNIEnv*, jclass, jfieldID);
jdouble (*GetStaticDoubleField) (JNIEnv*, jclass, jfieldID);
void (*SetStaticObjectField) (JNIEnv*, jclass, jfieldID, jobject);
void (*SetStaticBooleanField) (JNIEnv*, jclass, jfieldID, jbool);
void (*SetStaticByteField) (JNIEnv*, jclass, jfieldID, jbyte);
void (*SetStaticCharField) (JNIEnv*, jclass, jfieldID, jchar);
void (*SetStaticShortField) (JNIEnv*, jclass, jfieldID, jshort);
void (*SetStaticIntField) (JNIEnv*, jclass, jfieldID, jint);
void (*SetStaticLongField) (JNIEnv*, jclass, jfieldID, jlong);
void (*SetStaticFloatField) (JNIEnv*, jclass, jfieldID, jfloat);
void (*SetStaticDoubleField) (JNIEnv*, jclass, jfieldID, jdouble);
jstring (*NewString) (JNIEnv*, const jchar*, jsize);
jsize (*GetStringLength) (JNIEnv*, jstring);
const jchar* (*GetStringChars) (JNIEnv*, jstring, jboolean*);
void (*ReleaseStringChars) (JNIEnv*, jstring, const jchar*);
jstring (*NewStringUTF) (JNIEnv*, const char*);
jsize (*GetStringUTFLength) (JNIEnv*, jstring);
const jbyte* (*GetStringUTFChars) (JNIEnv*, jstring, jbool*);
void (*ReleaseStringUTFChars) (JNIEnv*, jstring, const jbyte*);
jsize (*GetArrayLength) (JNIEnv*, jarray);
jarray (*NewObjectArray) (JNIEnv*, jsize, jclass, jobject);
jobject (*GetObjectArrayElement) (JNIEnv*, jarray, jsize);
void (*SetObjectArrayElement) (JNIEnv*, jarray, jsize, jobject);
jarray (*NewBooleanArray) (JNIEnv*, jsize);
jarray (*NewByteArray) (JNIEnv*, jsize);
jarray (*NewCharArray) (JNIEnv*, jsize);
jarray (*NewShortArray) (JNIEnv*, jsize);
jarray (*NewIntArray) (JNIEnv*, jsize);
jarray (*NewLongArray) (JNIEnv*, jsize);
jarray (*NewFloatArray) (JNIEnv*, jsize);
jarray (*NewDoubleArray) (JNIEnv*, jsize);
jbool* (*GetBooleanArrayElements) (JNIEnv*, jarray, jbool*);
jbyte* (*GetByteArrayElements) (JNIEnv*, jarray, jbool*);
jchar* (*GetCharArrayElements) (JNIEnv*, jarray, jbool*);
jshort* (*GetShortArrayElements) (JNIEnv*, jarray, jbool*);
jint* (*GetIntArrayElements) (JNIEnv*, jarray, jbool*);
jlong* (*GetLongArrayElements) (JNIEnv*, jarray, jbool*);
jfloat* (*GetFloatArrayElements) (JNIEnv*, jarray, jbool*);
jdouble* (*GetDoubleArrayElements) (JNIEnv*, jarray, jbool*);
void (*ReleaseBooleanArrayElements) (JNIEnv*, jarray, jbool*, jint);
void (*ReleaseByteArrayElements) (JNIEnv*, jarray, jbyte*, jint);
void (*ReleaseCharArrayElements) (JNIEnv*, jarray, jchar*, jint);
void (*ReleaseShortArrayElements) (JNIEnv*, jarray, jshort*, jint);
void (*ReleaseIntArrayElements) (JNIEnv*, jarray, jint*, jint);
void (*ReleaseLongArrayElements) (JNIEnv*, jarray, jlong*, jint);
void (*ReleaseFloatArrayElements) (JNIEnv*, jarray, jfloat*, jint);
void (*ReleaseDoubleArrayElements) (JNIEnv*, jarray, jdouble*, jint);
void (*GetBooleanArrayRegion) (JNIEnv*, jarray, jsize, jsize, jbool*);
void (*GetByteArrayRegion) (JNIEnv*, jarray, jsize, jsize, jbyte*);
void (*GetCharArrayRegion) (JNIEnv*, jarray, jsize, jsize, jchar*);
void (*GetShortArrayRegion) (JNIEnv*, jarray, jsize, jsize, jshort*);
void (*GetIntArrayRegion) (JNIEnv*, jarray, jsize, jsize, jint*);
void (*GetLongArrayRegion) (JNIEnv*, jarray, jsize, jsize, jlong*);
void (*GetFloatArrayRegion) (JNIEnv*, jarray, jsize, jsize, jfloat*);
void (*GetDoubleArrayRegion) (JNIEnv*, jarray, jsize, jsize, jdouble*);
void (*SetBooleanArrayRegion) (JNIEnv*, jarray, jsize, jsize, jbool*);
void (*SetByteArrayRegion) (JNIEnv*, jarray, jsize, jsize, jbyte*);
void (*SetCharArrayRegion) (JNIEnv*, jarray, jsize, jsize, jchar*);
void (*SetShortArrayRegion) (JNIEnv*, jarray, jsize, jsize, jshort*);
void (*SetIntArrayRegion) (JNIEnv*, jarray, jsize, jsize, jint*);
void (*SetLongArrayRegion) (JNIEnv*, jarray, jsize, jsize, jlong*);
void (*SetFloatArrayRegion) (JNIEnv*, jarray, jsize, jsize, jfloat*);
void (*SetDoubleArrayRegion) (JNIEnv*, jarray, jsize, jsize, jdouble*);
jint (*RegisterNatives) (JNIEnv*, jclass, const JNINativeMethod*, jint);
jint (*UnregisterNatives) (JNIEnv*, jclass);
jint (*MonitorEnter) (JNIEnv*, jobject);
jint (*MonitorExit) (JNIEnv*, jobject);
jint (*GetJavaVM) (JNIEnv*, JavaVM**); }; struct JavaVMAttachArgs {
void* reserved0;
}; struct JNINativeMethod_ {
char* name;
char* signature;
void* fnPtr;
}; struct JNIInvokeInterface {
void* reserved0;
void* reserved1;
void* reserved2;
jint (*DestroyJavaVM) (JavaVM*);
jint (*AttachCurrentThread) (JavaVM*, JNIEnv**, ThreadAttachArgs*);
jint (*DetachCurrentThread) (JavaVM*);
}; struct JNIEnv_ {
const struct JNINativeInterface* functions;
}; struct JavaVM_ {
const struct JNIInvokeInterface* functions;
}; struct JavaVMInitArgs {
jint version;
char** properties;
jint checkSource;
jint nativeStackSize;
jint javaStackSize;
jint minHeapSize;
jint maxHeapSize;
jint verifyMode;
const char* classpath;
jint (*vfprintf)(FILE*, const char*, va_list);
void (*exit)(jint);
void (*abort)(void);
jint enableClassGC;
jint enableVerboseGC;
jint disableAsyncGC;
jint enableVerboseClassloading;
jint enableVerboseJIT;
jint allocHeapSize;
const char* classhome;
const char* libraryhome;
}; extern JavaVMInitArgs Kaffe_JavaVMArgs[]; #endif

jni.h源码的更多相关文章

  1. IPC之util.h源码解读

    /* SPDX-License-Identifier: GPL-2.0 */ /* * linux/ipc/util.h * Copyright (C) 1999 Christoph Rohland ...

  2. UVW源码漫谈(番外篇)—— Emitter

    这两天天气凉了,苏州这边连续好几天都是淅淅沥沥的下着小雨,今天天气还稍微好点.前两天早上起来突然就感冒了,当天就用了一卷纸,好在年轻扛得住,第二天就跟没事人似的.在这里提醒大家一下,天气凉了,睡凉席的 ...

  3. 从源码角度彻底理解ReentrantLock(重入锁)

    目录 1.前言 2.AbstractQueuedSynchronizer介绍 2.1 AQS是构建同步组件的基础 2.2 AQS的内部结构(ReentrantLock的语境下) 3 非公平模式加锁流程 ...

  4. duilib 使用图片素材或者算法给窗体增加阴影(源码和demo)

    转载请说明原出处,谢谢:http://blog.csdn.net/zhuhongshu/article/details/42580877 之前我写的程序使用阴影时,一直是使用codeproject网站 ...

  5. stl源码学习(版本2.91)--list

    stl源码学习(版本2.91)--list 一,阅读list()构造函数的收获 1,默认构造函数的作用和被调用的时机 struct no{ no(int i){} //no(){ // std::co ...

  6. libevent源码分析二--timeout事件响应

    libevent不仅支持io事件,同时还支持timeout事件与signal事件,这篇文件将分析libevent是如何组织timeout事件以及如何响应timeout事件. 1.  min_heap ...

  7. java并发系列(四)-----源码角度彻底理解ReentrantLock(重入锁)

    1.前言 ReentrantLock可以有公平锁和非公平锁的不同实现,只要在构造它的时候传入不同的布尔值,继续跟进下源码我们就能发现,关键在于实例化内部变量sync的方式不同,如下所示: /** * ...

  8. ReentrantLock(重入锁)的源码解析

    转自:从源码角度彻底理解ReentrantLock(重入锁)](https://www.cnblogs.com/takumicx/p/9402021.html)) 公平锁内部是FairSync,非公平 ...

  9. 【转】Android 源码下利用jni编译自己的项目(参考系统development/samples/SimpleJNI)

    原文网址:http://blog.csdn.net/qiuxiaolong007/article/details/7860481 记于正文前:环境是ubuntu10.10,android 源码是2.0 ...

随机推荐

  1. 禁止button响应回车(.net页面)

    1. 深层次来说这不是 ASP.NET 的问题, 而是 html form 的 submit 按钮就是如何设计的. 当你的光标焦点进入某个表单元素的时候,会激活该表单中第一个(流布局顺从左到右,从上至 ...

  2. 第一篇、C_高精度加法

    简介: C语言中,整型占4字节,现在要计算两个100(假设)位以内的数想加,如果只是用整型去存储,明显就会越界.那么,我们有什么好的方法去完成这一操作呢? 1.用数组实现 数组中可以可以存储一定长度的 ...

  3. percent-encode 百分号编码

    原文地址:http://www.imkevinyang.com/2009/08/详解javascript中的url编解码.html 摘要 URI(统一资源标识)编解码 为什么需要编码 哪些需要编码 如 ...

  4. iOS RunTime的简单使用

    1.根据指定规则根据runtime进行页面选择跳转 背景:要根据后台返回的数据 进行选择要跳转到哪一个ViewController // 这个规则肯定事先跟服务端沟通好,跳转对应的界面需要对应的参数 ...

  5. OpenJudge/Poj 1005 I Think I Need a Houseboat

    1.链接地址: http://bailian.openjudge.cn/practice/1005/ http://poj.org/problem?id=1005 2.题目: I Think I Ne ...

  6. CentOS 开启GD库

    在php.ini 中没有找到"extension=php_gd2.dll"这行代码,这是因为CentOS一般没有预装GD库. 解决办法: 1.在线安装GD库 yum -y inst ...

  7. wamp下开启SSL,解决APACHE启动问题

    wamp开启SSL解决wamp5_1.7.4中APACHE启动问题 1.#修改httpd.conf文件LoadModule ssl_module modules/mod_ssl.soInclude c ...

  8. c#拖放

    AllowDrop DragEnter: if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.Cop ...

  9. ACE 6.2.0 win7_64 编译

    Windows平台 ~ Microsoft Visual Studio 1)        下载ACE源码 ACE官方网址:http://www.cs.wustl.edu/~schmidt/ACE.h ...

  10. eclipse import的项目报autowired cannot be resolved to a type的错误

    eclipse报autowired cannot be resolved to a type的错误,一般情况是依赖的JDK或者jar包有问题,检查build path可以排查文件,我今天遇到这个情况, ...