codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#define CYL_DET_NATIVE_IMPL #include "CylonDetectorNative.h" namespace { ref struct AssemblyResolver { static System::Reflection::Assembly^ MyResolveEventHandler(System::Object^ sender, System::ResolveEventArgs^ args) { namespace sr = System::Reflection; namespace sio = System::IO; return sr::Assembly::LoadFile( sio::Path::Combine(sio::Path::GetDirectoryName( sr::Assembly::GetExecutingAssembly()->Location), "Util.dll")); } }; } // "Invisible" // { // LoadLibrary("Util.dll") static detector* real_initialize() { return new detector(gcnew Util::CylonDetector); } // } throws FileNotFoundException / EELoadFileException / SEH Wrapper thereof DLL detector* DLLCALL get_cylon_detector() { try { System::AppDomain::CurrentDomain->AssemblyResolve += gcnew System::ResolveEventHandler( AssemblyResolver::MyResolveEventHandler); return real_initialize(); } catch (...) { return nullptr; } } DLL void DLLCALL release_cylon_detector(detector *det) { delete det; } DLL bool DLLCALL is_cylon(detector *det, const char *name) { try { return det->get()->isCylon(gcnew System::String(name)); } catch (...) { // innocent until proven guilty... return false; } }
Private
[
?
]
Run code
Submit