C# DllImportµÄÓ÷¨
´ó¼ÒÔÚʵ¼Ê¹¤×÷ѧϰC#µÄʱºò£¬¿ÉÄÜ»áÎÊ£ºÎªÊ²Ã´ÎÒÃÇҪΪһЩÒѾ´æÔڵŦÄÜ£¨±ÈÈçWindowsÖеÄһЩ¹¦ÄÜ£¬C++ÖÐÒѾ±àдºÃµÄһЩ·½·¨£©ÒªÖØÐ±àд´úÂ룬C#ÓÐûÓз½·¨¿ÉÒÔÖ±½Ó¶¼ÓÃÕâЩԱ¾ÒѾ´æÔڵŦÄÜÄØ£¿´ð°¸Êǿ϶¨µÄ£¬´ó¼Ò¿ÉÒÔͨ¹ýC#ÖеÄDllImportÖ±½Óµ÷ÓÃÕâЩ¹¦ÄÜ¡£
DllImportËùÔÚµÄÃû×Ö¿Õ¼ä using System.Runtime.InteropServices;
MSDNÖжÔDllImportAttributeµÄ½âÊÍÊÇÕâÑùµÄ£º¿É½«¸ÃÊôÐÔÓ¦ÓÃÓÚ·½·¨¡£DllImportAttribute ÊôÐÔÌṩ¶Ô´Ó·ÇÍÐ¹Ü DLL µ¼³öµÄº¯Êý½øÐе÷ÓÃËù±ØÐèµÄÐÅÏ¢¡£×÷Ϊ×îµÍÒªÇ󣬱ØÐëÌṩ°üº¬Èë¿ÚµãµÄ DLL µÄÃû³Æ¡£
DllImport ÊôÐÔ¶¨ÒåÈçÏ£º
namespace System.Runtime.InteropServices
{
¡¡ [AttributeUsage(AttributeTargets.Method)]
¡¡ public class DllImportAttribute: System.Attribute
¡¡ {
¡¡ ¡¡public DllImportAttribute(string dllName) {...}
¡¡ ¡¡public CallingConvention CallingConvention;
¡¡ ¡¡public CharSet CharSet;
¡¡¡¡ public string EntryPoint;
¡¡ ¡¡public bool ExactSpelling;
¡¡ ¡¡public bool PreserveSig;
¡¡ ¡¡public bool SetLastError;
¡¡ ¡¡public string Value { get {...} }
¡¡ }
}
¡¡¡¡ËµÃ÷£º
¡¡¡¡1¡¢DllImportÖ»ÄÜ·ÅÖÃÔÚ·½·¨ÉùÃ÷ÉÏ¡£
¡¡¡¡2¡¢DllImport¾ßÓе¥¸ö¶¨Î»²ÎÊý£ºÖ¸¶¨°üº¬±»µ¼Èë·½·¨µÄ dll Ãû³ÆµÄ dllName ²ÎÊý¡£
¡¡¡¡3¡¢DllImport¾ßÓÐÎå¸öÃüÃû²ÎÊý£º
¡¡¡¡¡¡a¡¢CallingConvention ²ÎÊýָʾÈë¿ÚµãµÄµ÷ÓÃÔ¼¶¨¡£Èç¹ûδָ¶¨ CallingConvention£¬ÔòʹÓÃĬÈÏÖµ CallingConvention.Winapi¡£
¡¡¡¡¡¡b¡¢CharSet ²ÎÊýָʾÓÃÔÚÈë¿ÚµãÖеÄ×Ö·û¼¯¡£Èç¹ûδָ¶¨ CharSet£¬ÔòʹÓÃĬÈÏÖµ CharSet.Auto¡£
¡¡¡¡¡¡c¡¢EntryPoint ²ÎÊý¸ø³ö dll ÖÐÈë¿ÚµãµÄÃû³Æ¡£Èç¹ûδָ¶¨ EntryPoint£¬ÔòʹÓ÷½·¨±¾ÉíµÄÃû³Æ¡£
¡¡¡¡¡¡d¡¢ExactSpelling ²ÎÊýָʾ EntryPoint ÊÇ·ñ±ØÐëÓëָʾµÄÈë¿ÚµãµÄƴдÍêȫƥÅä¡£Èç¹ûδָ¶¨ ExactSpelling£¬ÔòʹÓÃĬÈÏÖµ false¡£
¡¡¡¡¡¡e¡¢PreserveSig ²ÎÊýָʾ·½·¨µÄÇ©ÃûÓ¦µ±±»±£Áô»¹ÊDZ»×ª»»¡£µ±Ç©Ãû±»×ª»»Ê±£¬Ëü±»×ª»»ÎªÒ»¸ö¾ßÓÐ HRESULT ·µ»ØÖµºÍ¸Ã·µ»ØÖµµÄÒ»¸öÃûΪ retval µÄ¸½¼ÓÊä³ö²ÎÊýµÄÇ©Ãû¡£Èç¹ûδָ¶¨ PreserveSig£¬ÔòʹÓÃĬÈÏÖµ true¡£
¡¡¡¡¡¡f¡¢SetLastError ²ÎÊýָʾ·½·¨ÊÇ·ñ±£Áô Win32"ÉÏÒ»´íÎó"¡£Èç¹ûδָ¶¨ SetLastError£¬ÔòʹÓÃĬÈÏÖµ false¡£
¡¡¡¡4¡¢ËüÊÇÒ»´ÎÐÔÊôÐÔÀà¡£
¡¡¡¡5¡¢´ËÍ⣬Óà DllImport ÊôÐÔÐÞÊεķ½·¨±ØÐë¾
Ïà¹ØÎĵµ£º
ʹÓà PlaySound ÔÚÒÆ¶¯É豸Éϲ¥·ÅÉùÒôÎļþ¡£´Ë´úÂëʹÓà System.Runtime.InteropServices
µ÷Óà Compact Framework µÄ CoreDll.DLL µÄ PlaySound ·½·¨
¹ØÓÚ²¥·ÅʵÏÖ£º
//²¥·Å±êÖ¾
private enum Flags
{
&n ......
ö¾Ù
¡¡¡¡Ã¶¾ÙÀàÐÍÉùÃ÷Ϊһ×éÏà¹ØµÄ·ûºÅ³£Êý¶¨ÒåÁËÒ»¸öÀàÐÍÃû³Æ¡£Ã¶¾ÙÓÃÓÚ“¶àÏîÑ¡Ôñ”³¡ºÏ£¬¾ÍÊdzÌÐòÔËÐÐʱ´Ó±àÒëʱÒѾÉ趨µÄ¹Ì¶¨ÊýÄ¿µÄ“Ñ¡Ôñ”ÖÐ×ö³ö¾ö¶¨¡£
¡¡¡¡Ã¶¾ÙÀàÐÍ£¨Ò²³ÆÎªÃ¶¾Ù£©Îª¶¨ÒåÒ»×é¿ÉÒÔ¸³¸ø±äÁ¿µÄÃüÃûÕûÊý³£Á¿ÌṩÁËÒ»ÖÖÓÐЧµÄ·½·¨¡£ÀýÈ磬¼ÙÉèÄú±ØÐ붨ÒåÒ»¸ö±äÁ¿£¬¸Ã±äÁ¿ ......
C#Çå³ýÒ³Ãæ»º´æ
private void SetPageNoCache()
{
Response.Buffer = true;
Response.ExpiresAbsolute = Sy ......
C#ÀࣺÀàÊÇC# Öй¦ÄÜ×îΪǿ´óµÄÊý¾ÝÀàÐÍ£¬ÀàÒ²¶¨ÒåÁËÊý¾ÝÀàÐ͵ÄÊý¾ÝºÍÐÐΪ¡£È»ºó£¬³ÌÐòÔ±¿ÉÒÔ´´½¨×÷Ϊ´ËÀàµÄʵÀýµÄ¶ÔÏó¡£
C#½á¹¹Ì壺½á¹¹ÌåÊÇÇáÁ¿Ð͵ÄÀ࣬ʹÓÿªÏúÏà¶ÔÓÚÀà½ÏС¡£
C#ÀàºÍC#½á¹¹ÌåÁ½ÕߵĹØÏµ£º
1.Êý¾ÝÀàÐÍ£ºÀàºÍ½á¹¹Ìå¶¼ÊÇÊý¾ÝÀàÐÍ£¬ÀàÊÇÒýÓÃÀàÐÍ£¬½á¹¹ÌåÊÇÖµÀàÐÍ¡£
2.¼Ì³ÐÐÔ£ºÀà¿ÉÒԼ̳кͱ»¼Ì³Ð£¬¶ø½á¹ ......