C#¶¯Ì¬µ÷ÓÃC++±àдµÄDLLº¯Êý
¶¯Ì¬¼ÓÔØDLLÐèҪʹÓÃWindows APIº¯Êý£ºLoadLibrary¡¢GetProcAddressÒÔ¼°FreeLibrary¡£ÎÒÃÇ¿ÉÒÔʹÓÃDllImportÔÚC#ÖÐʹÓÃÕâÈý¸öº¯Êý¡£
[DllImport("Kernel32")]
public static extern int GetProcAddress(int handle, String funcname);
[DllImport("Kernel32")]
public static extern int LoadLibrary(String funcname);
[DllImport("Kernel32")]
public static extern int FreeLibrary(int handle);
µ±ÎÒÃÇÔÚC++Öж¯Ì¬µ÷ÓÃDllÖеĺ¯Êýʱ£¬ÎÒÃÇÒ»°ãµÄ·½·¨ÊÇ£º
¼ÙÉèDLLÖÐÓÐÒ»¸öµ¼³öº¯Êý£¬º¯ÊýÔÐÍÈçÏ£º
BOOL __stdcall foo(Object &object, LPVOID lpReserved);
1¡¢Ê×Ïȶ¨ÒåÏàÓ¦µÄº¯ÊýÖ¸Õ룺
typedef BOOL (__stdcall *PFOO)(Object &object, LPVOID lpReserved);
2¡¢µ÷ÓÃLoadLibrary¼ÓÔØdll£º
HINSTANCE hInst = ::LoadLibraryW(dllFileName);
3¡¢µ÷ÓÃGetProcAddressº¯Êý»ñȡҪµ÷Óú¯ÊýµÄµØÖ·£º
PFOO foo = (PFOO)GetProcAddress(hInst,"foo");
if(foo == NULL)
{
FreeLibrary(hInst);
return false;
}
4¡¢µ÷ÓÃfooº¯Êý£º
BOOL bRet = foo(object,(LPVOID)NULL);
5¡¢Ê¹ÓÃÍêºóÓ¦ÊÍ·ÅDLL£º
FreeLibrary(hInst);
ÄÇôÔÚC#ÖÐÓ¦¸ÃÔõô×öÄØ£¿·½·¨»ù±¾ÉÏÒ»Ñù£¬ÎÒÃÇʹÓÃίÍÐÀ´´úÌæC++µÄº¯ÊýÖ¸Õ룬ͨ¹ý.NET Framework 2.0ÐÂÔöµÄº¯ÊýGetDelegateForFunctionPointerÀ´µÃµ½Ò»¸öίÍеÄʵÀý£º
ÏÂÃæ·â×°ÁËÒ»¸öÀ࣬ͨ¹ý¸ÃÀàÎÒÃǾͿÉÒÔÔÚC#Öж¯Ì¬µ÷ÓÃDllÖеĺ¯ÊýÁË£º
public class DLLWrapper
{
///<summary>
/// API LoadLibrary
///</summary>
[DllImport("Kernel32")]
public static extern int LoadLibrary(String funcname);
///<summary>
/// API GetProcAddress
///</summary>
[DllImport("Kernel32")]
public static extern int GetProcAddress(int handle, String funcname);
///<summary>
/// API FreeLibrary
///</summary>
&
Ïà¹ØÎĵµ£º
linuxÏÂÃæ´®¿Ú¹¤¾ßC-kermit C-kermitÊÇÒ»¿î¼¯³ÉÁËÍøÂçͨÐÅ¡¢´®¿ÚͨÐŵŤ¾ß£¬ËüÓÐÈç϶àÖÖ¹¦ÄÜ
1.Ö§³ÖkermitÎļþ´«ÊäÐÒé
2.×Ô¶¨ÒåÁËÒ»Öֽű¾ÓïÑÔ£¬ËüÇ¿´ó¶øÒ×ÓÚʹÓ㬿ÉÓÃÓÚ×Ô¶¯»¯¹¤×÷
3.ÎÞÂÛÊÇÍøÂçͨÐÅ£¬»¹ÊÇ´®¿ÚͨÐÅ£¬²Ù×÷ÊÇÒ»Öµģ¬²¢Ö§³Ö¶àÖÖÓ²¼þ¡¢Èí¼þƽ̨
4.Óа²È«ÈÏÖ¤¡¢¼ÓÃܹ¦ÄÜ
5.ÄÚ½¨FTP¡¢HTTP¿Í»§¶Ë¹ ......
ÏÈÉùÃ÷£¬ÎÒ²»ÊÇÕâ·½ÃæµÄר¼Ò£¬Ö»ÊǸÉÈí¼þËĸöÔ²»ÖªÌìÓжà¸ßµØÓжàÓ²µÄСº¢×Ó
Ê×ÏÈ£¬ÀàÐÍת»»ÊÇÓÐÒ»¶¨¿ªÏúµÄ
ÎÒÊÔ¹ýÕâÑùµÄ´úÂ룺ÕâÊÇÒ»¸ö¿ØÖÆÌ¨Ó¦ÓóÌÐòµÄProgramÀàµÄ´úÂë
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ÀàÐÍת»»µÄ¿ªÏú
{
class Program
......
1. newÓм¸ÖÖÓ÷¨
3ÖÖ ÊµÀý¶ÔÏó ·½·¨Òþ²Ø
2.ÈçºÎ°ÑÒ»¸öarray¸´ÖƵ½arrayListÀï
foreach( object o in array )arrayList.Add(o);
3.datagrid.datasouse¿ÉÒÔÁ¬½ÓʲôÊý¾ÝÔ´
Êý¾Ý¼¯DataSet
4.¸ÅÊö·´ÉäºÍÐòÁл¯
¶¯Ì¬»ñµÃ ......