LoadLibrary 例子

LoadLibrary 例子

 

//  CliConsole.cpp : main project file.
#define  _AFXDLL
#include 
< afx.h >
#include 
< tchar.h >
#include 
< iostream >
using   namespace  System;

bool  PrintWndText(IntPtr hwnd, IntPtr lParam) {
 String 
^wndText = Helper::GetWndText(hwnd);
 
if(wndText){
  Console::WriteLine(wndText);
 }

 
return true;
}


delegate   int  PrintDelegate(String ^ , String ^ );
int  main(array < System::String  ^>   ^ args)
{
 CallbackDelegate 
^callback = gcnew CallbackDelegate(PrintWndText);
 WindowsEnumerator 
^we = gcnew WindowsEnumerator(callback);
 we
->DoWork();

 HMODULE hLib 
= LoadLibrary(L"msvcrt.dll");
 
if(hLib){
  typedef 
int (*FUNCPTR)(const char*);
  FARPROC proc 
= GetProcAddress(hLib,"printf");
  FUNCPTR pFunc 
= reinterpret_cast<FUNCPTR>(proc);
  
if(pFunc){
   
using System::Runtime::InteropServices::Marshal;
   Delegate
^ ptr = Marshal::GetDelegateForFunctionPointer((IntPtr)pFunc,PrintDelegate::typeid);
   PrintDelegate
^ printDelegate = (PrintDelegate^)ptr;
   printDelegate(
"%s\r\n",L"good man");
  }

 }


 Console::WriteLine(L
"Hello World");
 system(
"pause");
 
return 0;
}


你可能感兴趣的:(LoadLibrary 例子)