/*
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
*
* - Neither the name of Oracle nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/*
*/
using System;
class jinvoker{
// Print Hello to show we are in CLR
// invoke JVM
else
return -1;
}
// Link the JVM API functions and the wrappers
[DllImport("jvm.dll")] public unsafe static extern int JNI_CreateJavaVM(void** ppVm, void** ppEnv, void* pArgs);
[DllImport("jinvoker.dll")] public unsafe static extern int FindClass( void* pEnv, String sClass, void** ppClass );
void* pClass,
void** ppMid);
int nDimension,
void** ppArray );
void* pClass,
void* pMid,
void* pArgs);
void* pJVM; // JVM struct
void* pEnv; // JVM environment
void* pVMArgs; // VM args
void* pClass; // Class struct of the executed method
void* pMethod; // The executed method struct
void* pArgs; // The executed method arguments struct
// Fill the pVMArgs structs
// Create JVM
if( nRes == 0 ){
// Find the executed method class
// Find the executed method
// Create empty String[] array to pass to the main()
// Call main()
if( nRes != -1 )
else
}else{
nRes = -100;
}
else{
nRes = -101;
}
else{
nRes = -102;
}
// Destroy the JVM
DestroyJavaVM( pJVM );
}else
// Free the JVM args structs
return nRes;
}
}