C#µ÷ÓÃC DLL
ÔÚºÏ×÷¿ª·¢Ê±£¬C#ʱ³£ÐèÒªµ÷ÓÃC++DLL£¬µ±´«µÝ²ÎÊýʱʱ³£Óöµ½ÎÊÌ⣬ÓÈÆäÊÇ´«µÝºÍ·µ»Ø×Ö·û´®ÊÇ£¬ÏÖ×ܽáһϣ¬·ÖÏí¸ø´ó¼Ò£º
VC++ÖÐÖ÷Òª×Ö·û´®ÀàÐÍΪ£ºLPSTR,LPCSTR, LPCTSTR, string, CString, LPCWSTR, LPWSTRµÈ
µ«×ªÎªC#ÀàÐÍÈ´²»ÍêÈ«Ïàͬ¡£
Ö÷ÒªÓÐÈçϼ¸ÖÖת»»£º
½«stringתΪIntPtr£ºIntPtr System.Runtime.InteropServices.Marshal.StringToCoTaskMemAuto(string)
½«IntPtrתΪstring£ºstring System.Runtime.InteropServices.MarshalPtrToStringAuto(IntPtr)
ÀàÐͶÔÕÕ£º
BSTR --------- StringBuilder
LPCTSTR --------- StringBuilder
LPCWSTR --------- IntPtr
handle---------IntPtr
hwnd-----------IntPtr
char *----------string
int * -----------ref int
int &-----------ref int
void *----------IntPtr
unsigned char *-----ref byte
StructÐèÒªÔÚC#ÀïÖØÐ¶¨ÒåÒ»¸öStruct
CallBack»Øµ÷º¯ÊýÐèÒª·â×°ÔÚÒ»¸öίÍÐÀdelegate static extern int FunCallBack(string str);
×¢ÒâÔÚÿ¸öº¯ÊýµÄÇ°Ãæ¼ÓÉÏpublic static extern +·µ»ØµÄÊý¾ÝÀàÐÍ,Èç¹û²»¼Ópublic ,º¯ÊýĬÈÏΪ˽Óк¯Êý£¬µ÷Óþͻá³ö´í¡£
ÔÚC#µ÷ÓÃC++ DLL·â×°¿âʱ»á³öÏÖÁ½¸öÎÊÌ⣺
1£® Êý¾ÝÀàÐÍת»»ÎÊÌâ
2£® Ö¸Õë»òµØÖ·²ÎÊý´«ËÍÎÊÌâ
Ê×ÏÈÊÇÊý¾ÝÀàÐÍת»»ÎÊÌâ¡£ÒòΪC#ÊÇ.NETÓïÑÔ£¬ÀûÓõÄÊÇ.NETµÄ»ù±¾Êý¾ÝÀàÐÍ£¬ËùÒÔʵ¼ÊÉÏÊǽ«C++µÄÊý¾ÝÀàÐÍÓë.NETµÄ»ù±¾Êý¾ÝÀàÐͽøÐжÔÓ¦¡£
ÀýÈçC++µÄÔÓк¯ÊýÊÇ£º
int __stdcall FunctionName(unsigned char param1, unsigned short param2)
ÆäÖеIJÎÊýÊý¾ÝÀàÐÍÔÚC#ÖУ¬±ØÐëתΪ¶ÔÓ¦µÄÊý¾ÝÀàÐÍ¡£È磺
[DllImport(“ COM DLL path/file ”)]
extern static int FunctionName(byte param1, ushort param2)
ÒòΪµ÷ÓõÄÊÇ__stdcallº¯Êý£¬ËùÒÔʹÓÃÁËP/InvokeµÄµ÷Ó÷½·¨¡£ÆäÖеķ½·¨FunctionName±ØÐëÉùÃ÷Ϊ¾²Ì¬Íⲿº¯Êý£¬¼´¼ÓÉÏextern staticÉùÃ÷Í·¡£ÎÒÃÇ¿ÉÒÔ¿´µ½£¬ÔÚµ÷ÓõĹý³ÌÖУ¬unsigned char±äΪÁËbyte£¬unsigned short±äΪÁËushort¡£±ä»»ºó£¬²ÎÊýµÄÊý¾ÝÀàÐͲ»±ä£¬Ö»ÊÇÉùÃ÷·½Ê½±ØÐë¸ÄΪ.NETÓïÑԵĹ淶¡£
ÎÒÃÇ¿ÉÒÔͨ¹ýϱíÀ´½øÐÐÕâÖÖת»»£º
Win32 Types
CLR Type
char, INT8, SBYTE, CHAR
System.SByte
short, short int, INT16, SHORT
System.Int16
int, long, long int, I
Ïà¹ØÎĵµ£º
MISRA--×÷Ϊ¹¤Òµ±ê×¼µÄC±à³Ì¹æ·¶(ǶÈëʽc¿ª·¢Õ߱ضÁ)
MISRA--×÷Ϊ¹¤Òµ±ê×¼µÄC±à³Ì¹æ·¶
MISRA (The Motor Industry Software Reliability Association
Æû³µ¹¤ÒµÈí¼þ¿É¿¿ÐÔÁª»á)
ÊÇλÓÚÓ¢¹úµÄÒ»¸ö¿ç¹úÆû³µ¹¤ÒµÐ»á£¬Æä³ÉÔ±°üÀ¨Á˴󲿷ÖÅ·ÃÀÆû³µÉú²úÉÌ¡£ÆäºËÐÄʹÃüÊÇΪÆû³µ¹¤ÒµÌṩ·þÎñºÍÐÖú£¬°ïÖ ......
C#Á¬½ÓOracleÊý¾Ý¿â×Ö·û´®
http://developer.51cto.com
2009-08-20 17:55 ØýÃû °Ù¶È¿Õ¼ä ÎÒÒªÆÀÂÛ(
0
)
C#Á¬½ÓOracleÊý¾Ý¿âÒÔ¼°C#Á¬½ÓOracleÊý¾Ý¿â×Ö·û´®µÈÄÚÈݽ«ÔÚ±¾ÎÄÖÐÕ¹ÏÖ£¬Ï£Íû±¾ÎÄÄܶԴó¼ÒÁ˽âC#Á¬½ÓÊý¾Ý¿âÓÐËù°ïÖú¡£
C#Á¬½ÓOracleÊý¾Ý¿â×Ö·û´®£¨²éѯÊý¾Ý£©
using
Syst ......
ÒýÓÃÃüÃû¿Õ¼ä£ºusing System.Xml
1.¼ì²éËùÒª²Ù×÷µÄxmlÎļþÊÇ·ñ´æÔÚ£º
System.IO.File.Exists(Îļþ·¾¶¼°Ãû³Æ);
2.µÃµ½xmlÎļþ£º
£¨1£©ÔÚasp.netÖпÉÒÔÕâÑùµÃµ½:
XmlDocument xmlDoc = new XmlDocument();
//µ¼ÈëxmlÎĵµ
xmlDoc.Load( Server.MapPath("xmlTesting.xml"));
//µ¼Èë×Ö·û´®
/ ......
Linux ²Ù×÷ϵͳ C ÓïÑÔ±à³ÌÈëÃÅ
Ŀ ¼
µÚÒ»Õ »ù´¡ÖªÊ¶ ……………………………………………………………4
µÚ¶þÕÂ ......
<@Aattention Content="±¾BlogÔ´´ÎÄÕ£¬×ªÔØ»òÒýÓÃÇë×¢Ã÷×ªÔØ"
from="Robby.cnblogs.com"@>
ÓÉÓÚ×Ô¼ºµÄËÑË÷ÒýÇæÖÐ×öµ½ÁËÕâÒ»¿éÄÚÈÝ£¬ËùÒÔ½ñÌì˵˵ÈçºÎ×¥È¡ÍøÒ³Êý¾Ý¡¢·ÖÎö²¢ÇÒÈ¥³ýHtml±êÇ©£¬¸ø´ó¼ÒÌṩһ¸ö²Î¿¼¡£Î񵀮½Ì¨ÊÇVisual
Studio2005£¬C#¡£
& ......