Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

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 ÊôÐÔÐÞÊεķ½·¨±ØÐë¾


Ïà¹ØÎĵµ£º

C# 3.0ÐÂÌØÐÔϵÁУºÒþº¬ÀàÐÍvar

Ò»£®ÉñÆæµÄvar
¡¡¡¡ÔÚC#3.0ÖÐÔö¼ÓÁËÒ»¸ö±äÁ¿ÉùÃ÷var£¬Õâ¸öÉùÃ÷ºÍJavaScript µÄ varÀàËÆ£¬µ«Ò²Óв»Í¬¡£
¡¡¡¡1. Ïàͬµã£¬Ëü¿ÉÒÔÓÃvarÀ´ÉùÃ÷ÈκÎÀàÐ͵ľֲ¿±äÁ¿¡£
¡¡¡¡2. ²»Í¬µã£¬Ëü½ö½ö¸ºÔð¸æËß±àÒëÆ÷£¬¸Ã±äÁ¿ÐèÒª¸ù¾Ý³õʼ»¯±í´ïʽÀ´ÍƶϱäÁ¿µÄÀàÐÍ£¬¶øÇÒÖ»ÄÜÊǾֲ¿±äÁ¿¡£
¡¡¡¡¶þ£®Ïàͬµã
¡¡¡¡Ëü¿ÉÒÔÉùÃ÷
var integer = ......

Ìá¸ßC#±à³ÌˮƽµÄ50¸öÒª¾÷


ÏëÌá¸ßc#±à³Ìˮƽ£¿ÏÂÃæÕâ50Ìõ¾­Ñé²»¿É²»¶Á£¡
Ìá¸ßC#±à³ÌˮƽµÄ50¸öÒªµã
1.×ÜÊÇÓÃÊôÐÔ (Property) À´´úÌæ¿É·ÃÎʵÄÊý¾Ý³ÉÔ±
2.ÔÚ  readonly ºÍ const Ö®¼ä£¬ÓÅÏÈʹÓà readonly
3.ÔÚ as ºÍ Ç¿ÖÆÀàÐÍת»»Ö®¼ä£¬ÓÅÏÈʹÓà as ²Ù×÷·û
4.ʹÓÃÌõ¼þÊôÐÔ (Conditional Attributes) À´´úÌæÌõ¼þ±àÒëÓï¾ä #if
5.×ÜÊÇΪ×Ô¶¨Ò ......

¶¯Ì¬µ÷ÓÃWebService(C#)

ͨ³£ÎÒÃÇÔÚ³ÌÐòÖÐÐèÒªµ÷ÓÃWebServiceʱ£¬¶¼ÊÇͨ¹ý“Ìí¼ÓWebÒýÓÔ£¬ÈÃVS.NET»·¾³À´ÎªÎÒÃÇÉú³É·þÎñ´úÀí£¬È»ºóµ÷ÓöÔÓ¦µÄWeb·þÎñ¡£ÕâÑùÊÇʹ¹¤×÷¼òµ¥ÁË£¬µ«ÊÇÈ´ºÍÌṩWeb·þÎñµÄURL¡¢·½·¨Ãû¡¢²ÎÊý°ó¶¨ÔÚÒ»ÆðÁË£¬ÕâÊÇVS.NET×Ô¶¯ÎªÎÒÃÇÉú³ÉWeb·þÎñ´úÀíµÄÏÞÖÆ¡£Èç¹ûÄÄÒ»Ìì·¢²¼Web·þÎñµÄURL¸Ä±äÁË£¬ÔòÎÒÃÇÐèÒªÖØÐÂÈÃVS.NE ......

C# µ÷Óà c++ dll µÄһЩÎÊÌâ×ܽá

1.c++µÄµ½´¦º¯ÊýÖ»ÒªÔÚº¯ÊýÉêÃ÷µÄʱºò¼Ó¸öµ¼³ö¹Ø¼ü×־ͿÉÒÔÁË
2.²ÎÊýÀàÐÍÎÊÌâ,
Ò»°ãµÄc++ÖÐchar * ¶ÔÓ¦ c#ÖеÄstring
¶øc++ÖÐ char **ÀàÐ͵IJÎÊý¶ÔÓ¦c#ÖÐ ref string ÕâÖÖÒ»°ã¶¼ÊÇÓÃÀ´·µ»Ø×Ö·û´®µÄ!
3.º¯ÊýÈë¿ÚÎÊÌâ,Ò»°ã»á³öÏÖ "ÕÒ²»µ½Èë¿Úµã" Õâ¸öÎÊÌâ²»ÊÇÓÉÄãÒýÆðµÄ,¶øÊÇϵͳ×Ô¼º°ÑÃû×Ö¸ÄÁË,¸Ä³ÉʲôÑùµÄÃû×Ö½¨ÒéÄãÓà ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ