C c# ½»»¥ c·µ»Øchar*µÄÎÊÌâ
cдµÄ³ÌÐòÒª·µ»ØÒ»¸öchar*
c#µ÷ÓõÄʱºòÓ¦¸ÃÓÃʲôÀ´½ÓÊÜÄØ char*µÄ³¤¶Èδ֪
stringbuild? ÎÒ·µ»ØµÄ³¤¶ÈÓÐ20mb×óÓÒ ÎªÊ²Ã´ÎÒÓÃstringbulid½ÓÊÜÖ»ÓÐ4¸ö×Ô¼º³¤¶È ¸Ð¾õ¾ÍÊǸöÖ¸ÕëµÄ³¤¶È
---------ÁíÒ»¸öÎÊÌâµÄ·Ö¸îÏß-------------------
ÁíÍâÒ»ÖÖ·½·¨ÊÇ·µ»ØÒ»¸östruct ½á¹¹ÖаüÀ¨char*ºÍchar*µÄ³¤¶ÈÁ½¸ö±äÁ¿
µ«ÊÇc#½ÓÊսṹµÄʱºò ˵ÊÇÀàÐͲ»Æ¥Åä ·µ»Ø´íÎó
δ´¦ÀíMarshalDirectiveException
·½·¨µÄÀàÐÍÇ©ÃûÓë PInvoke ²»¼æÈÝ
-------------------ͬһ¸öÎÊÌâÁíÍâÒ»ÖÖ·½·¨µÄ·Ö¸îÏß-------------------
ÁíÍâÒ»ÖÖ·½·¨ÎÒÓÃintptr½ÓÊÜ
C# code:
public struct CDecodeFileInfo
{
public long len;
public string data;
};
CDecodeFileInfo cdfi = new CDecodeFileInfo();
IntPtr ptr = CReadFile(@"c:\des");
cdfi = (CDecodeFileInfo)Marshal.PtrToStructure(ptr, typeof(CDecodeFileInfo));
·µ»ØµÄ´íÎóÊÇ
δ´¦ÀíAccessViolationException
³¢ÊÔ¶ÁÈ¡»òдÈëÊܱ£»¤µÄÄÚ´æ¡£Õâͨ³£Ö¸Ê¾ÆäËûÄÚ´æÒÑË𻵡£
ÇóÈÎÒâÒ»ÖÖ½â¾ö·½·¨
ÆäʵÕâÁ½¸öÎÊÌâ ¶¼ÎªÁ˽â¾öͬһ¸öÊÂÇé ¾ÍÊÇÎÒÔõôµÃµ½c·µ»ØµÄÄǸöchar*
{{
Ïà¹ØÎÊ´ð£º
дÁ˸ö²âÊÔ³ÌÐòÈçÏÂ
struct hostent *hp;
char AlarmDevIP[20];
int x2;
hp = gethostbyname("www.google.com");
if (hp)
{
......
´ó¼ÒºÃ£¬ÕâÊÇÒ»¸öÖ÷ÒªÃæÏòc/c++/mfcµÄȺ£¬×î½ü½øÐÐÁËÒ»´Î´óÇåÀí£¬»¶Ó¸÷λ¸ßÊÖ¼ÓÈ룬ºÃѧ°®ÎʵÄÐÂÊÖ£¬Ò²¿ÉÒÔÉêÇëµÄ£¬ÉêÇë¸ñʽ Ö°Òµ£¨c/c++/mfc ÈÎѡһ»òÕ߶ࣩ ¹¤×÷ÄêÏÞ£¨Ñ§ÉúÖ±½Óд´ó¼¸£©¾ÍÐÐÁË£¬ÈëȺµÄÒªÇó¾ÍÊÇÒª» ......
ÓÐÒ»10*10¾ØÕ󣬳ýÈ¥µÚÒ»¸öµã£¨0£¬0£©ºÍ×îºóÒ»µã£¨9£¬9£©£¬»¹Óа˸öµãΪ1£¬ÆäËû¶¼Îª0£¬ÒªÇóÓöþάÊý×é±íʾ¡£°Ë¸öµãÊÇËæ»úÉú³ÉµÄ£¬±àдÏà¹Ø³ÌÐò±íʾ¾ØÕóËùÓпÉÄÜÇé¿ö¡£
ÕæÐÄÇó½Ì¸÷λ¸ßÊÖ£¬°¥£¡±¾ÈËÌ«²ËÁË£¡ºÇºÇ£¡
......
ÎÒÓÃjqueryÎÞË¢ÐÂÉÏ´«Í¼Æ¬ºó·µ»Øjson¸ñʽµÄÊý¾Ý±¨´í
£¨Êµ¼ÊÉÏͼƬÊÇÉÏ´«³É¹¦µÄÁË£¬Ö»ÊÇ·µ»Øjson¸ñʽ×ܶÁ²»µ½£¬×ÜÊDZ¨´í£©
ÎÒµ÷ÊÔÉÏ´«µÄashxÒ³ÈçÏÂ
ÎÞ·¨ÏÔʾ XML Ò³¡£
ʹÓà Ñùʽ±íÎÞ·¨²é¿´ XML ÊäÈë¡£Çë¸ü ......