Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

C#¶¯Ì¬µ÷ÓÃC++±àдµÄDLLº¯Êý


¶¯Ì¬¼ÓÔØDLLÐèҪʹÓÃWindows APIº¯Êý£ºLoadLibrary¡¢GetProcAddressÒÔ¼°FreeLibrary¡£ÎÒÃÇ¿ÉÒÔʹÓÃDllImportÔÚC#ÖÐʹÓÃÕâÈý¸öº¯Êý¡£

[DllImport("Kernel32")]
public static extern int GetProcAddress(int handle, String funcname);

[DllImport("Kernel32")]
public static extern int LoadLibrary(String funcname);

[DllImport("Kernel32")]
public static extern int FreeLibrary(int handle);

µ±ÎÒÃÇÔÚC++Öж¯Ì¬µ÷ÓÃDllÖеĺ¯Êýʱ£¬ÎÒÃÇÒ»°ãµÄ·½·¨ÊÇ£º
¼ÙÉèDLLÖÐÓÐÒ»¸öµ¼³öº¯Êý£¬º¯ÊýÔ­ÐÍÈçÏ£º
BOOL __stdcall foo(Object &object, LPVOID lpReserved);

1¡¢Ê×Ïȶ¨ÒåÏàÓ¦µÄº¯ÊýÖ¸Õ룺
typedef BOOL (__stdcall *PFOO)(Object &object, LPVOID lpReserved);

2¡¢µ÷ÓÃLoadLibrary¼ÓÔØdll£º
HINSTANCE hInst = ::LoadLibraryW(dllFileName);

3¡¢µ÷ÓÃGetProcAddressº¯Êý»ñȡҪµ÷Óú¯ÊýµÄµØÖ·£º
PFOO foo = (PFOO)GetProcAddress(hInst,"foo");
if(foo == NULL)
{
    FreeLibrary(hInst);
    return false;
}

4¡¢µ÷ÓÃfooº¯Êý£º
BOOL bRet = foo(object,(LPVOID)NULL);

5¡¢Ê¹ÓÃÍêºóÓ¦ÊÍ·ÅDLL£º
FreeLibrary(hInst);

ÄÇôÔÚC#ÖÐÓ¦¸ÃÔõô×öÄØ£¿·½·¨»ù±¾ÉÏÒ»Ñù£¬ÎÒÃÇʹÓÃίÍÐÀ´´úÌæC++µÄº¯ÊýÖ¸Õ룬ͨ¹ý.NET Framework 2.0ÐÂÔöµÄº¯ÊýGetDelegateForFunctionPointerÀ´µÃµ½Ò»¸öίÍеÄʵÀý£º

ÏÂÃæ·â×°ÁËÒ»¸öÀ࣬ͨ¹ý¸ÃÀàÎÒÃǾͿÉÒÔÔÚC#Öж¯Ì¬µ÷ÓÃDllÖеĺ¯ÊýÁË£º

public class DLLWrapper
{
    ///<summary>
    /// API LoadLibrary
    ///</summary>
    [DllImport("Kernel32")]
    public static extern int LoadLibrary(String funcname);

    ///<summary>
    /// API GetProcAddress
    ///</summary>
    [DllImport("Kernel32")]
    public static extern int GetProcAddress(int handle, String funcname);

    ///<summary>
    /// API FreeLibrary
    ///</summary>
 &


Ïà¹ØÎĵµ£º

linuxÏÂÃæ´®¿Ú¹¤¾ßC kermit

linuxÏÂÃæ´®¿Ú¹¤¾ßC-kermit  C-kermitÊÇÒ»¿î¼¯³ÉÁËÍøÂçͨÐÅ¡¢´®¿ÚͨÐŵŤ¾ß£¬ËüÓÐÈç϶àÖÖ¹¦ÄÜ
1.Ö§³ÖkermitÎļþ´«ÊäЭÒé
2.×Ô¶¨ÒåÁËÒ»Öֽű¾ÓïÑÔ£¬ËüÇ¿´ó¶øÒ×ÓÚʹÓ㬿ÉÓÃÓÚ×Ô¶¯»¯¹¤×÷
3.ÎÞÂÛÊÇÍøÂçͨÐÅ£¬»¹ÊÇ´®¿ÚͨÐÅ£¬²Ù×÷ÊÇÒ»Öµģ¬²¢Ö§³Ö¶àÖÖÓ²¼þ¡¢Èí¼þƽ̨
4.Óа²È«ÈÏÖ¤¡¢¼ÓÃܹ¦ÄÜ
5.ÄÚ½¨FTP¡¢HTTP¿Í»§¶Ë¹ ......

C#ºǫ́µ÷ÓÃǰ̨javascriptµÄÎåÖÖ·½·¨


ÓÉÓÚÏîÄ¿ÐèÒª£¬Óõ½ÆäËûÏîÄ¿×éÓÃVC¿ª·¢µÄ×é¼þ£¬ÔÚwebºǫ́´úÂëÎÞ·¨·ÃÎÊÕâ¸ö×é¼þ£¬ËùÒÔÖ»ºÃͨ¹ýºǫ́µ÷ÓÃǰ̨µÄjavascript£¬´Ó¶ø²Ù×÷Õâ¸ö×é¼þ¡£ÔÚÍøÉÏÕÒÁËÕÒ£¬·¢ÏÖÓÐÈýÖÖ·½·¨¿ÉÒÔ·ÃÎʵ½Ç°Ì¨´úÂ룺
µÚÒ»ÖÖ£¬OnClientClick    (vs2003²»Ö§³ÖÕâ¸ö·½·¨)
<asp:Button ID="Button1" runat="se ......

C#ÖнṹÓëÀàµÄÇø±ð

Ò»£®ÀàÓë½á¹¹µÄʾÀý±È½Ï£º
½á¹¹Ê¾Àý£º
public struct Person
{
string Name;
int height;
int weight
public bool overWeight()
{
//implement something
}
}
ÀàʾÀý£º
public class TestTime
{
int hours;
int minutes;
int seconds;
public void passtime()
{
//implementation ......

Observer ¹Û²ìÕßģʽ £¨HeadFirstÉè¼ÆÄ£Ê½ c#£©

Observer.cs
using System;
using System.Text;
using System.Collections.Generic;
namespace Observer
{
   
    public interface ISubject
    {
        void RegisterObserver(IOvserver o);
    & ......

C# TCP ·þÎñ¶Ë(PC)Óë¿Í»§¶Ë(PPC) ¼òµ¥´úÂë

·þÎñÆ÷¶Ë´úÂë
¿Ø¼þ£ºbtnStart_Click£¬btnSend_Click£¬label4£¬textBox1
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Collections;
using System.Threading;
using S ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ