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>
&
Ïà¹ØÎĵµ£º
Boss˵£¬Òª¿´OpenGL£¬¿´ÁË¿ìÒ»¸öÔ£¬×ÜËã³öÁ˸öÏñÑùµÄ¶«Î÷£¬ÓÃCдÁ˸ö3DÃÔ¹¬£¬
ËäȻֻÓÐ350ÐÐ
´úÂ룬²»¹ý±ßѧ±ßд£¬×ã×ãдÁËÒ»ÖÜʱ¼ä£¬»¹ÊÇСÓгɾ͸е쬻î»î»î£¡
&n ......
mysqlÔÚsdkÖÐΪcÓïÑÔÌṩÁËһЩ·ÃÎʽӿڣ¬ÎÒÃÇ¿ÉÒÔʹÓÃÕâЩ½Ó¿ÚÁ¬½Ó²¢·ÃÎÊmysqlÊý¾Ý¿â£¬µ±È»Ò²¿ÉÒÔµ÷ÓÃmysqlµÄ´æ´¢¹ý³Ì¡£
Àý×Ó£º
Ê×ÏÈÏÂÔØmysqlµÄsdk£¬½âѹºÃÒÔºó£¬ÀïÃæ°üº¬Ò»¸öinclude,ºÍlibÎļþ¼Ð¡£ÎÒÃÇÔÚ×Ô¼ºµÄ¹¤³ÌÖаüº¬ÕâÁ½¸öÎļþ¼ÐµÄĿ¼£¬²¢Ç ......
²úÆ·¼¸ÄêǰʹÓÃASP£¬ºóÀ´Éý¼¶µ½.Net 1.1£¬ÔÙÉý¼¶µ½2.0£¬Ò»Ö±¶¼ÓÐÓÃXSLTת»»XMLÉú³ÉÍøÒ³µÄ·½Ê½£¬ÉÔ΢ÕûÀíÏ¡£
XML file:
<?xml version="1.0" encoding="utf-8" ?>
<ric>
<catalog>
<book price ......
¹ØÓÚʹÓõ½ÁËÁ½¸öC#¹Ø¼ü×ÖthisºÍbase¡£
1£¬C# "this " keyword
Æä×÷ÓÃÒýÓÃÀàµÄµ±Ç°ÊµÀý£¬Æäʵ¿´ÁËÏÂÃæÕâ¸öÀý×ӾͺÃÀí½âÁË¡£
Ö÷ÒªÈý¸ö×÷Ó㺵±Ç°ÊµÀý¡¢²ÎÊý´«µÝºÍË÷ÒýÆ÷
1.1 µ±Ç°ÊµÀý
class Team
{
///³ÉÔ±±äÁ¿
private string name;
///¹¹Ô캯Êý
......
ίÍкÍʼþÔÚ .Net FrameworkÖеÄÓ¦Ó÷dz£¹ã·º£¬È»¶ø£¬½ÏºÃµØÀí½âίÍкÍʼþ¶ÔºÜ¶à½Ó´¥C#ʱ¼ä²»³¤µÄÈËÀ´Ëµ²¢²»ÈÝÒס£ËüÃǾÍÏñÊÇÒ»µÀ¼÷¶ù£¬¹ýÁËÕâ¸ö¼÷µÄÈË£¬¾õµÃÕæÊÇÌ«ÈÝÒ×ÁË£¬¶øÃ»ÓйýÈ¥µÄÈËÿ´Î¼ûµ½Î¯ÍкÍʼþ¾Í¾õµÃÐÄÀï±ð£¨bi裩µÃ»Å£¬»ìÉí²»×ÔÔÚ¡£±¾ÎÄÖУ¬ÎÒ½«Í¨¹ýÁ½¸ö·¶ÀýÓÉdzÈëÉîµØ½²ÊöʲôÊÇίÍС¢ÎªÊ²Ã´ÒªÊ¹Ó ......