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*
{{
Ïà¹ØÎÊ´ð£º
±¾ÈËÕýÔÚÓÃJava×öÒ»¸öC/S¼Ü¹¹µÄÏîÄ¿£¬
¿ÉÊÇÓÉÓÚÏîÄ¿±È½Ï´ó£¬Ç°ÆÚ¶Ô¼Ü¹¹µÄÉè¼ÆÓÈÆäÖØÒª£¬ÒòΪºóÆÚ¿ÉÄÜËæÊ±»á¼Ó¸ö¹¦ÄÜ»òÕßÈ¥µôijЩ¹¦ÄÜ¡£
ËùÒÔÌØµØÑ°ÇóÈçºÎÉè¼ÆC/SµÄ¼Ü¹¹Ê¹³ÌÐò¸ü¼ÓÃæÏò¶ÔÏó¸ü¼ÓÒ×ÓÚά ......
´ó¼ÒºÃ£¬ÕâÊÇÒ»¸öÖ÷ÒªÃæÏòc/c++/mfcµÄȺ£¬×î½ü½øÐÐÁËÒ»´Î´óÇåÀí£¬»¶Ó¸÷λ¸ßÊÖ¼ÓÈ룬ºÃѧ°®ÎʵÄÐÂÊÖ£¬Ò²¿ÉÒÔÉêÇëµÄ£¬ÉêÇë¸ñʽ Ö°Òµ£¨c/c++/mfc ÈÎѡһ»òÕ߶ࣩ ¹¤×÷ÄêÏÞ£¨Ñ§ÉúÖ±½Óд´ó¼¸£©¾ÍÐÐÁË£¬ÈëȺµÄÒªÇó¾ÍÊÇÒª» ......
ÎÒÓÃjqueryÎÞË¢ÐÂÉÏ´«Í¼Æ¬ºó·µ»Øjson¸ñʽµÄÊý¾Ý±¨´í
£¨Êµ¼ÊÉÏͼƬÊÇÉÏ´«³É¹¦µÄÁË£¬Ö»ÊÇ·µ»Øjson¸ñʽ×ܶÁ²»µ½£¬×ÜÊDZ¨´í£©
ÎÒµ÷ÊÔÉÏ´«µÄashxÒ³ÈçÏÂ
ÎÞ·¨ÏÔʾ XML Ò³¡£
ʹÓà Ñùʽ±íÎÞ·¨²é¿´ XML ÊäÈë¡£Çë¸ü ......
ÄÚÈÝÈçÌâ¡£¡£ÔÚC#Àï¸ÄÈçºÎÐ´ÄØ£¿
±¾À´Ë¼Â·ÊÇÏȱȶԽڵãÃû³Æ£¬ÈçÊǵϰ¾Í±£´æÒªÉ¾³ý½ÚµãµÄϱê·ÅÔÚÊý×éÀȻºóÑ»·É¾³ý£¬µ«·¢ÏÖ¡£¡£µ±ÎÒɾ³ýµÚÒ»¸öºó£¬ËùÓнڵãϱêÊýÁ¿¶¼·¢Éú¸Ä±ä¡£¡£
¾Í²»ÄÜÔÙ°´ÕÕ֮ǰ¼Í¼µÄ½Úµã ......
ÔÚ¸ùĿ¼/libÖдæ·ÅÒ»¸ölog.c£¬log.h£¬²¢ÓÃÏÂÃæµÄÓï¾ä£º
gcc -c log.c
ar crv liblog.a log.o
±àÒë³öÒ»¸öliblog.a¾²Ì¬¿â£¬È»ºóÔÚÎļþ¼Ð£º/testfileÖд´½¨Ò»¸ötest.cºÍtestc.c£¬test.cÖÐÒýÓÃÁËtestc.cÖж¨ÒåµÄ·½·¨ ......