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
Ïà¹ØÎĵµ£º
Boss˵£¬Òª¿´OpenGL£¬¿´ÁË¿ìÒ»¸öÔ£¬×ÜËã³öÁ˸öÏñÑùµÄ¶«Î÷£¬ÓÃCдÁ˸ö3DÃÔ¹¬£¬
ËäȻֻÓÐ350ÐÐ
´úÂ룬²»¹ý±ßѧ±ßд£¬×ã×ãдÁËÒ»ÖÜʱ¼ä£¬»¹ÊÇСÓгɾ͸е쬻î»î»î£¡
&n ......
Ò»¼ÒÖ®ÑÔ£¬»¶ÓÅÄש¹þ¡£
1¡¢¿ÉÒÔ¿¼ÂÇÏÈѧϰC.
´ó¶àÊýʱºò£¬ÎÒÃÇѧϰÓïÑÔµÄÄ¿µÄ£¬²»ÊÇΪÁ˳ÉΪһ¸öÓïÑÔר¼Ò£¬¶øÊÇÏ£Íû³ÉΪһ¸ö½â¾öÎÊÌâµÄר¼Ò¡£×öÒ»¸öÓÐÓõijÌÐòÔ±£¬×öÒ»¸ö׬ǮµÄ³ÌÐòÔ±¡£ÎÒÃǵļÛÖµ£¬½«ÌåÏÖÔÚ¿Í»§¼ÛÖµÉÏ£¬¶ø²»ÊÇÓïÑÔдµÃºÃ²»ºÃ¿´¡£
C++ÊÇCµÄÒ»¸öÃæÏò¶ÔÏóµÄ½âÊÍ£¬C++ΪCÀ ......
ϰ¹ßÓÃRAD7,ËùÒÔÓÃÆðÀ´eclipse for C ûÓÐÎÊÌâ¡£
ÏÂÔØeclipse3.5:
°²×°£ºmingw£¨Èç¹ûÓÃC++, ¾ÍҪѡÉÏg++£©
°²×°£ºmsys
°²×°ºó£¬ÒªÉèÖÃһϻ·¾³±äÁ¿£º
ÔÚpathÀïÃæ¼ÓÈëmingwºÍmsysµÄbinĿ¼·¾¶¡£È磺c:\mingw\bin;c:\msys\bin
´ò¿ªeclipseн¨Ò»¸öc project!
È»ºó¾Í¿ÉÒÔÓÃÁË,ÒòΪËüÒѾ°ïÄãÕÒµ½ÁËGCC make ÁË¡£ ......
LinuxÏÂͨ³£Ê¹ÓÃÃâ·ÑµÄ±àÒëÆ÷gcc¡£ÆäÖÐgccÖ÷ÒªÓÃÀ´±àÒëCÓïÑÔ´úÂ룬g++Ö÷ÒªÓÃÀ´±àÒëC++´úÂë¡£Èç¹ûÏëÓÃgcc±àÒëc³ÌÐò£¬ÔòҪעÒâCÓëC++¶ÔÓï·¨ÒªÇóµÄ²»Í¬µã£¬ÀýÈ磺
1) C³ÌÐòÊÇ´Ómainº¯Êý¿ªÊ¼£¬C++³ÌÐòÊÇ´ÓÈ«¾Ö±äÁ¿µÄ¹¹Ô캯Êý¿ªÊ¼
2) ±äÁ¿±ØÐëÉùÃ÷ÔÚÓï¾äǰ
3) ûÓÐboolÀàÐÍ
4) ÉùÃ÷ö¾Ù±äÁ¿ÊDZØÐëÔÚö¾Ù ......
½øÈëandroid shellºó»á´òÓ¡£º
sh: can't access tty; job control turned off
ÊäÈëtab¼üûÓв¹È«£¬ÊäÈëctrl+cûÓÐÖÕÖ¹µ½ÏÂÒ»ÐУ¬¶øÊÇÊäÈëÒ»¸öÂÒÆß°ËÔãµÄ×Ö·û£¬
ûÓÐcpÃüÁîµÈµÈµÈµÈ£¬
Äã»á·¢ÏÖ£¬ÕâËûÂ軹ÊÇlinuxÂð,ÕâÈÕ×Óû·¨¹ýÁË£¬¼òÖ±£¡
ÒªÖ§³ÖһЩ³£ÓõÄÃüÁ
ÐèÒªÖØÐ±àÒëÒ»¸öbusybox£¬
make menuconfig
ÏÈÑ¡Ôñ ......