CµÄdll»Øµ÷C#º¯Êý - .NET¼¼Êõ / C#
c dll ½Ó¿Ú´úÂë
C/C++ code:
//»Øµ÷º¯Êý
//timesÊǻص÷´ÎÊý
ZOKE_DLL_EXPORT int zoke_callback(test_object* object, int (*callback)(int), int times);
c#´úÂë
C# code:
[DllImport("dll_test.dll", CharSet = CharSet.Ansi)]
unsafe public static extern int zoke_callback(test_object* obj, callback mycallback, int times);
public delegate int callback(int a);
private void button2_Click(object sender, EventArgs e)
{
unsafe
{
Class2.callback myCallBack = new Class2.callback(callbackfunc);
MessageBox.Show(myCallBack.ToString());
int result = Class2.zoke_callback(tobj, myCallBack, 1);
MessageBox.Show(result.ToString());
}
}
private int callbackfunc(int a)
{
MessageBox.Show(a.ToString());
return 10;
}
µã»÷ʼþʱ³ö´í£º³¢ÊÔ¶ÁÈ¡»òдÈëÊܱ£»¤µÄÄÚ´æ¡£Õâͨ³£Ö¸Ê¾ÆäËûÄÚ´æÒÑË𻵡£¹À¼ÆÊÇcallback mycallbackµÄÎÊÌ⣬Çë¸ßÊÖ³öÀ´°ïæһÏ¡£
ÇÀ¸öɳ·¢¹þ£¡ÎÒÊÇÐÂÊÖ£¡
Ïà¹ØÎÊ´ð£º
DataSetµ¼³öxml Åú´¦Àí(Ñ»·)µÃÔõô´¦Àí
XMLÎļþ
<A>
<B>
<C>
</C>
&nb ......
ÈçÌ⣬C/C++ÖеÄexeclÔõôµ÷ÓÃдºÃµÄjava³ÌÐò£¬
execl("/opt/java1.5/bin/java","MyClass",NULL);
ÕâÑùµÄ²»ÐÐŶ¡£
²»»á.
ÔËÐÐjava³ÌÐò
ÕÒ¹¤¾ß²é¿´Ò»ÏÂÄǸö³ÌÐòµÄÃüÁîÐÐ
ËÑË÷Ï£ºjni ......
ÓÐÒ»10*10¾ØÕ󣬳ýÈ¥µÚÒ»¸öµã£¨0£¬0£©ºÍ×îºóÒ»µã£¨9£¬9£©£¬»¹Óа˸öµãΪ1£¬ÆäËû¶¼Îª0£¬ÒªÇóÓöþάÊý×é±íʾ¡£°Ë¸öµãÊÇËæ»úÉú³ÉµÄ£¬±àдÏà¹Ø³ÌÐò±íʾ¾ØÕóËùÓпÉÄÜÇé¿ö¡£
ÕæÐÄÇó½Ì¸÷λ¸ßÊÖ£¬°¥£¡±¾ÈËÌ«²ËÁË£¡ºÇºÇ£¡
......
ΪʲôÎҵijÌÐòµ÷ÓÃXMLÅäÖÃÎļþÖеİ¢À²®ÎÄÏÔʾ²»³öÀ´£¿ÆäËûµÄÓïÖÖ¶¼¿ÉÒÔ£¬ÈçÖÐÎÄ£¬Ó¢ÎÄ£¬µÂÎͼ¿É¡£
ÎÒ½«XMLµÄ±àÂë¸ÄΪutf-8ºÍunicodeµÄµ½µÃ½á¹û¶¼Ò»Ñù.
°¢À²®ÎĵÄ×Ö¿âÄãÓÐô£¿
ÓÐ,ÎÒµÄEXEÊÇ·ÅÔÚpc»úÉÏÖ´Ðе ......
¹«Ë¾¿ª·¢Ò»¸ö´¥ÃþÆÁ³ÌÐò£¬ÎÒ¸ºÔðµÄÒ»¿é£¬ÊµÏÖÕâÑùÒ»¸ö¹¦ÄÜ£¬µ±Êó±êµã»÷´°¿ÚÖÐͼƬ£¨Ò»ÕÅͼ·Ö³É¼¸²¿·Ö£©µÄÆäÖÐÒ»²¿·Öʱ£¬½«Õⲿ·ÖͼƬ½ØÈ¡³öÀ´£¬µ¯³öеĴ°¿Ú£¬½«½ØÈ¡³öµÄͼƬÏÔʾ³öÀ´¡£ÎÒʹÓÃRectangeÀà¿ØÖÆÁË·µ»Ø£¬ ......