锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲黄色尤物视频,亚洲一区在线观看视频,欧美午夜精品一区http://www.shnenglu.com/ivenher/articles/37002.html鐖遍キ鐩?/dc:creator>鐖遍キ鐩?/author>Tue, 20 Nov 2007 04:18:00 GMThttp://www.shnenglu.com/ivenher/articles/37002.htmlhttp://www.shnenglu.com/ivenher/comments/37002.htmlhttp://www.shnenglu.com/ivenher/articles/37002.html#Feedback0http://www.shnenglu.com/ivenher/comments/commentRss/37002.htmlhttp://www.shnenglu.com/ivenher/services/trackbacks/37002.html 

  涓銆佸湪搴旂敤紼嬪簭鑷畾涔夋秷鎭柟娉曪細

        涓鑸嚜瀹氫箟娑堟伅鏈変竴瀹氱殑鑼冨洿錛岃櫧鐒惰鑷畾涔夋秷鎭粠WM_USER寮濮嬶紝浣嗘槸鐢變簬鎴戜滑鐨勫伐紼嬮噷闈竴鑸繕鏈夊緢澶氬叾浠栫殑鎺т歡錛屼粬浠篃瑕佸崰鐢ㄤ竴閮ㄥ垎WM_USER娑堟伅鑼冨洿錛屾墍浠ユ垜浠繀欏諱負浠栦滑鐣欏嚭涓閮ㄥ垎鑼冨洿錛岃繖閲岋紝鎴戜滑淇濈暀100涓秷鎭紝涓鑸儏鍐典笅錛岃繖鍙互婊¤凍鎴戜滑鐨勮姹傘?/p>

  (1)    瀹氫箟娑堟伅鐨勫箋傚湪鎴戜滑瑕佸彂鐢熸秷鎭殑鍦版柟(渚嬪CMyView.cpp鐨勫紑濮嬮儴鍒?鎴栬卻tdafx..h鏂囦歡錛岃繘琛屽涓嬪畾涔夛細


#define WM_MSG  (WM_USER+101)

 

        鎺ヤ笅鏉ョ殑宸ヤ綔鍏跺疄寰堢畝鍗曪紝鎴戜滑鍦ㄥ墠闈㈣浜嗭紝娑堟伅姝e父宸ヤ綔鏈?涓儴鍒嗗繀欏誨崗璋冿細娑堟伅澹版槑銆佹秷鎭槧灝勩佹秷鎭綋銆傛垜浠氨涓嬈¤繘琛屾墜宸ュ姞鍏ャ?/p>

        (2)棣栧厛鍦ˋFX_MSG鍧椾腑鍔犲叆娑堟伅澹版槑錛氬湪CMyView.h涓紝鎵懼埌濡備笅閮ㄥ垎錛屽茍鍔犲叆娑堟伅澹版槑錛?/p>


         protected:       

            // {{AFX_MSG錛圕MyView)

            ......

            afx_msg LRESULT OnMyMsg(WPARAM wParam,LPARAM lParam);

            file://}}AFX_MSG

 

        (3)鍦∕ESSAGE_MAP鍧椾腑娣誨姞ON_MESSAGE瀹忔寚浠わ細


           BEGIN_MESSAGE_MAP(CMyView, CView)

              file://{{AFX_MSG_MAP(CMyView)

               .....

              ON_MESSAGE(WM_MSG, OnMyMsg)

             file://}}AFX_MSG_MAP

           END_MESSAGE_MAP()

 

        (4)娣誨姞娑堟伅鍑芥暟浣擄細


      LPESULT CMyView::OnMyMsg(WPARAM wParam, LPARAM lParam)

          {

    


             AfxMessageBox("娑堟伅宸茬粡鏀跺埌錛?);

             return 0;

          }

 

        娑堟伅鑷蟲灝卞凡緇忓畾涔夊畬姣曪紝鎺ヤ笅鏉ユ垜浠氨鍙互嬋媧繪秷鎭簡錛屽氨鍙互鐢ㄦ垜浠墠闈㈡墍璇寸殑PostMessage/SendMessage鏉ュ彂閫佹秷鎭簡銆?/p>

銆銆銆銆濡傦細::PostMessage(hwnd,WM_MSG,0,1);

       PostMessage:涓嶇敤絳夋秷鎭繑鍥炪?/p>

銆銆銆 SendMessage:闇瑕佺瓑娑堟伅榪斿洖銆?/p>

  浜屻佷粠DLL涓紶閫掓秷鎭埌EXE

銆銆銆鍦―LL涓畾涔夋秷鎭拰涓婇潰鐨勬柟娉曞緢鐩鎬技錛屾湁涓ょ偣涓嶅悓鐨勫湴鏂癸細

  1銆?nbsp; 鍦―LL鍜屽簲鐢ㄧ▼搴忎腑涓や釜鍦版柟瀹氫箟鐩稿悓鐨勬秷鎭?/p>

  2銆?nbsp; 搴旂敤紼嬪簭璋冪敤DLL紼嬪簭涔嬪悗錛岄渶瑕佸皢搴旂敤紼嬪簭鐨勭獥鍙e彞鏌勪紶閫掔粰DLL錛屼互渚緿LL涓殑娑堟伅榪斿洖銆?/p>

  鍦―LL宸ョ▼涓細

  錛?錛?nbsp;      鍦╯tdafx.h澶存枃浠朵腑娣誨姞娑堟伅瀹氫箟錛?/p>


 #define WM_MSG WM_USER + 102

銆銆銆銆銆銆銆

  錛?錛?nbsp;      娣誨姞鍚姩娑堟伅鐨勮緭鍑哄嚱鏁幫細


銆銆銆銆銆銆銆CMessageDLLApp theApp;

  //鍙戦佹秷鎭?/p>

extern "C" _declspec(dllexport) void StartSendMessage(HWND hwnd)

{

                 theApp.SendMessage(hwnd);

}銆銆銆銆銆

 

銆銆          鍏朵腑hwnd鏄帴鏀舵秷鎭殑紿楀彛鍙ユ焺銆?/p>

  錛?錛?nbsp;      娣誨姞鍚姩娑堟伅鐨勫疄鐜板嚱鏁幫細

鍦ㄥご鏂囦歡涓坊鍔犲嚱鏁板0鏄庯細


  void SendMessage(HWND hwnd);

 

  鍦–PP鏂囦歡涓坊鍔犲嚱鏁板疄鐜?/p>

  //鍚姩鍙戦佹秷鎭?/p>


void CMessageDLLApp::SendMessage(HWND hwnd)

{

                   ::PostMessage(hwnd,WM_MSG,0,1);

}

  鍦ㄥ簲

鐢ㄧ▼搴忎腑錛?/p>

  錛?錛?nbsp;      鍦╯tdafx.h澶存枃浠朵腑娣誨姞娑堟伅瀹氫箟錛?/p>


#define WM_MSG WM_USER + 102

銆銆銆銆銆銆銆

  錛?錛?nbsp;      棣栧厛鍦ˋFX_MSG鍧椾腑鍔犲叆娑堟伅澹版槑錛氬湪CTestMessageDLLDlg.h涓紝鎵懼埌濡備笅閮ㄥ垎錛屽茍鍔犲叆娑堟伅澹版槑錛?/p>

銆傘傘傘傘傘?/p>


銆銆銆銆銆銆銆 afx_msg LRESULT OnMyMsg(WPARAM wParam,LPARAM lParam);

                 DECLARE_MESSAGE_MAP()

 

  錛?錛?nbsp;      鍦∕ESSAGE_MAP鍧椾腑娣誨姞ON_MESSAGE瀹忔寚浠わ細


銆銆銆銆銆銆銆 BEGIN_MESSAGE_MAP(CTestMessageDLLDlg, CDialog)

    銆銆銆銆銆銆銆傘傘傘傘傘?/p>

    銆銆銆銆銆銆ON_MESSAGE(WM_MSG, OnMyMsg)

    銆銆銆銆銆銆//}}AFX_MSG_MAP

    銆銆銆銆銆銆END_MESSAGE_MAP()

 

  錛?錛?nbsp;      娣誨姞娑堟伅鍑芥暟浣擄細


銆銆銆銆銆銆 LRESULT CTestMessageDLLDlg::OnMyMsg(WPARAM wParam, LPARAM lParam)

 {

           銆銆銆銆 AfxMessageBox("娑堟伅宸茬粡鏀跺埌錛?);

            銆銆銆銆 return 0;

 銆銆銆銆}

銆錛?錛?nbsp;      鍦ㄥ璇濇涓婃坊鍔犱竴涓寜閽紝鍦ㄦ寜閽簨浠朵腑錛屽厛璋冪敤DLL鏂囦歡錛岀劧鍚庡彂閫佷竴涓祴璇曟秷鎭搷搴旂殑鍛戒護錛?/p>


void CTestMessageDLLDlg::OnBnClickedButton1()

{

    // TODO: 鍦ㄦ娣誨姞鎺т歡閫氱煡澶勭悊紼嬪簭浠g爜

    //瀹氫箟鍑芥暟

    typedef void (_cdecl*STARTSENDMESSAGE)(HWND hwnd);

    HMODULE hmessage = NULL;

    STARTSENDMESSAGE StartSendMessage = NULL;

銆銆//瀵煎叆DLL搴撴枃浠?/p>

    hmessage = LoadLibrary("MessageDLL.dll");

    if(hmessage==NULL)

    {

        FreeLibrary(hmessage);

        exit(0);

    }

銆銆//瀵煎叆DLL涓祴璇曟秷鎭嚱鏁?/p>

    StartSendMessage = (STARTSENDMESSAGE)GetProcAddress(hmessage,"StartSendMessage");

    if(StartSendMessage==NULL)

    {

        FreeLibrary(hmessage);

        exit(1);

    }

    //鑾峰彇瀵硅瘽妗嗙殑紿楀彛鍙ユ焺

    HWND hwnd = this-錛濭etSafeHwnd();

    //鍙戦佹祴璇曟秷鎭嚱鏁?/p>

    (*StartSendMessage)(hwnd);

}

 

榪愯搴旂敤紼嬪簭錛屽氨鍙互鐪嬪埌嫻嬭瘯緇撴灉浜嗐?br> 











]]>
MFC瑙勫垯DLL鐨勮皟鐢?/title><link>http://www.shnenglu.com/ivenher/articles/1322.html</link><dc:creator>鐖遍キ鐩?/dc:creator><author>鐖遍キ鐩?/author><pubDate>Fri, 25 Nov 2005 10:50:00 GMT</pubDate><guid>http://www.shnenglu.com/ivenher/articles/1322.html</guid><wfw:comment>http://www.shnenglu.com/ivenher/comments/1322.html</wfw:comment><comments>http://www.shnenglu.com/ivenher/articles/1322.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/ivenher/comments/commentRss/1322.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/ivenher/services/trackbacks/1322.html</trackback:ping><description><![CDATA[絎旇呯紪鍐欎簡濡傚浘12鐨勫璇濇MFC紼嬪簭錛堜笅杞芥湰宸ョ▼<A >闄勪歡</A>錛夋潵璋冪敤5.3鑺傜殑MFC瑙勫垯DLL錛屽湪榪欎釜紼嬪簭鐨勫璇濇涓婄偣鍑燴滆皟鐢―LL鈥濇寜閽椂寮瑰嚭5.3鑺侻FC瑙勫垯DLL涓殑瀵硅瘽妗嗐?BR> <P align=center><IMG alt="" src="http://www.pconline.com.cn/pcedu/empolder/gj/vc/0509/pic/05-09-22-vc-12.jpg" border=0></P> <P align=center>鍥?2 MFC瑙勫垯DLL鐨勮皟鐢ㄤ緥瀛?/P> <P>銆銆涓嬮潰鏄滆皟鐢―LL鈥濇寜閽崟鍑諱簨浠剁殑娑堟伅澶勭悊鍑芥暟錛?BR></P> <P class=code>void CRegularDllCallDlg::OnCalldllButton() <BR><BR>{<BR><BR>typedef void (*lpFun)(void);<BR><BR><BR>HINSTANCE hDll; //DLL鍙ユ焺 <BR><BR>hDll = LoadLibrary("RegularDll.dll");<BR><BR>if (NULL==hDll)<BR><BR>{<BR><BR>MessageBox("DLL鍔犺澆澶辮觸");<BR><BR>}<BR><BR><BR><BR>lpFun addFun; //鍑芥暟鎸囬拡<BR><BR>lpFun pShowDlg = (lpFun)GetProcAddress(hDll,"ShowDlg");<BR><BR>if (NULL==pShowDlg)<BR><BR>{<BR><BR>MessageBox("DLL涓嚱鏁板鎵懼け璐?); <BR><BR>}<BR><BR>pShowDlg();<BR><BR>}</P><BR>銆銆涓婅堪渚嬪瓙涓粰鍑虹殑鏄樉紺鴻皟鐢ㄧ殑鏂瑰紡錛屽彲浠ョ湅鍑猴紝鍏惰皟鐢ㄦ柟寮忎笌絎?鑺備腑闈濵FC DLL鐨勮皟鐢ㄦ柟寮忔病鏈変粈涔堜笉鍚屻?BR>鎴戜滑鐓ф牱鍙互鍦‥XE紼嬪簭涓殣寮忚皟鐢∕FC瑙勫垯DLL錛屽彧闇瑕佸皢DLL宸ョ▼鐢熸垚鐨?lib鏂囦歡鍜?dll鏂囦歡鎷峰叆褰撳墠宸ョ▼鎵鍦ㄧ殑鐩綍錛屽茍鍦≧egularDllCallDlg.cpp鏂囦歡錛堝浘12鎵紺哄璇濇綾葷殑瀹炵幇鏂囦歡錛夌殑欏墮儴娣誨姞錛?BR> <P class=code>#pragma comment(lib,"RegularDll.lib")<BR><BR>void ShowDlg(void); </P><BR>銆銆騫跺皢void CRegularDllCallDlg::OnCalldllButton() 鏀逛負錛?BR> <P class=code>void CRegularDllCallDlg::OnCalldllButton() <BR><BR>{<BR><BR>ShowDlg();<BR><BR>}</P><img src ="http://www.shnenglu.com/ivenher/aggbug/1322.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/ivenher/" target="_blank">鐖遍キ鐩?/a> 2005-11-25 18:50 <a href="http://www.shnenglu.com/ivenher/articles/1322.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>MFC瑙勫垯DLL 綆鍗曠殑渚嬪瓙http://www.shnenglu.com/ivenher/articles/1321.html鐖遍キ鐩?/dc:creator>鐖遍キ鐩?/author>Fri, 25 Nov 2005 10:49:00 GMThttp://www.shnenglu.com/ivenher/articles/1321.htmlhttp://www.shnenglu.com/ivenher/comments/1321.htmlhttp://www.shnenglu.com/ivenher/articles/1321.html#Feedback2http://www.shnenglu.com/ivenher/comments/commentRss/1321.htmlhttp://www.shnenglu.com/ivenher/services/trackbacks/1321.html錛堜笅杞芥湰宸ョ▼闄勪歡錛夛細

鍥?1 MFC瑙勫垯DLL渚嬪瓙

銆銆鍦―LL涓坊鍔犲璇濇鐨勬柟寮忎笌鍦∕FC搴旂敤紼嬪簭涓槸涓鏍風殑銆?BR>
銆銆鍦ㄥ浘11鎵紺篋LL涓殑瀵硅瘽妗嗙殑Hello鎸夐挳涓婄偣鍑繪椂灝哅essageBox涓涓淗ello,pconline鐨勭綉鍙嬧濆璇濇錛屼笅闈㈡槸鐩稿叧鐨勬枃浠跺強婧愪唬鐮侊紝鍏朵腑鍒犻櫎浜哅FC鍚戝鑷姩鐢熸垚鐨勭粷澶у鏁版敞閲娿?BR>絎竴緇勬枃浠訛細CWinApp緇ф壙綾葷殑澹版槑涓庡疄鐜?BR>

// RegularDll.h : main header file for the REGULARDLL DLL



#if !defined(AFX_REGULARDLL_H__3E9CB22B_588B_4388_B778_B3416ADB79B3__INCLUDED_)

#define AFX_REGULARDLL_H__3E9CB22B_588B_4388_B778_B3416ADB79B3__INCLUDED_



#if _MSC_VER > 1000

#pragma once

#endif // _MSC_VER > 1000



#ifndef __AFXWIN_H__

#error include 'stdafx.h' before including this file for PCH

#endif

#include "resource.h" // main symbols



class CRegularDllApp : public CWinApp

{

public:

CRegularDllApp();



DECLARE_MESSAGE_MAP()

};

#endif



// RegularDll.cpp : Defines the initialization routines for the DLL.



#include "stdafx.h"

#include "RegularDll.h"



#ifdef _DEBUG

#define new DEBUG_NEW

#undef THIS_FILE

static char THIS_FILE[] = __FILE__;

#endif



BEGIN_MESSAGE_MAP(CRegularDllApp, CWinApp)

END_MESSAGE_MAP()



/////////////////////////////////////////////////////////////////////////////

// CRegularDllApp construction



CRegularDllApp::CRegularDllApp()

{

}



/////////////////////////////////////////////////////////////////////////////

// The one and only CRegularDllApp object

CRegularDllApp theApp;


銆銆鍒嗘瀽錛?BR>
銆銆鍦ㄨ繖涓緇勬枃浠朵腑瀹氫箟浜嗕竴涓戶鎵胯嚜CWinApp鐨勭被CRegularDllApp錛屽茍鍚屾椂瀹氫箟浜嗗叾鐨勪竴涓疄渚媡heApp銆備箥涓鐪嬶紝鎮ㄤ細浠ヤ負瀹冩槸涓涓狹FC搴旂敤紼嬪簭錛屽洜涓篗FC搴旂敤紼嬪簭涔熷寘鍚繖鏍風殑鍦ㄥ伐紼嬪悕鍚庢坊鍔犫淎pp鈥濈粍鎴愮被鍚嶇殑綾伙紙騫剁戶鎵胯嚜CWinApp綾伙級錛屼篃瀹氫箟浜嗚繖涓被鐨勪竴涓叏灞瀹炰緥theApp銆?BR>鎴戜滑鐭ラ亾錛屽湪MFC搴旂敤紼嬪簭涓瑿WinApp鍙栦唬浜哠DK紼嬪簭涓璚inMain鐨勫湴浣嶏紝SDK紼嬪簭WinMain鎵瀹屾垚鐨勫伐浣滅敱CWinApp鐨勪笁涓嚱鏁板畬鎴愶細

virtual BOOL InitApplication( );

virtual BOOL InitInstance( );

virtual BOOL Run( ); //浼犺涓璏FC紼嬪簭鐨勨滄椿姘存簮澶粹?/P>


銆銆浣嗘槸MFC瑙勫垯DLL騫朵笉鏄疢FC搴旂敤紼嬪簭錛屽畠鎵緇ф壙鑷狢WinApp鐨勭被涓嶅寘鍚秷鎭驚鐜傝繖鏄洜涓猴紝MFC瑙勫垯DLL涓嶅寘鍚獵WinApp::Run鏈哄埗錛屼富娑堟伅娉典粛鐒剁敱搴旂敤紼嬪簭鎷ユ湁銆傚鏋淒LL 鐢熸垚鏃犳ā寮忓璇濇鎴栨湁鑷繁鐨勪富妗嗘灦紿楀彛錛屽垯搴旂敤紼嬪簭鐨勪富娑堟伅娉靛繀欏昏皟鐢ㄤ粠DLL 瀵煎嚭鐨勫嚱鏁版潵璋冪敤PreTranslateMessage鎴愬憳鍑芥暟銆?BR>
銆銆鍙﹀錛孧FC瑙勫垯DLL涓嶮FC 搴旂敤紼嬪簭涓竴鏍鳳紝闇瑕佸皢鎵鏈?DLL涓厓绱犵殑鍒濆鍖栨斁鍒癐nitInstance 鎴愬憳鍑芥暟涓?BR>
銆銆絎簩緇勬枃浠?鑷畾涔夊璇濇綾誨0鏄庡強瀹炵幇(鐐瑰嚮鏌ョ湅闄勪歡)

銆銆鍒嗘瀽錛?BR>
銆銆榪欎竴閮ㄥ垎鐨勭紪紼嬩笌涓鑸殑搴旂敤紼嬪簭鏍規湰娌℃湁浠涔堜笉鍚岋紝鎴戜滑鐓ф牱鍙互鍒╃敤MFC綾誨悜瀵兼潵鑷姩涓哄璇濇涓婄殑鎺т歡娣誨姞浜嬩歡銆侻FC綾誨悜瀵肩収鏍蜂細鐢熸垚綾諱技ON_BN_CLICKED(IDC_HELLO_BUTTON, OnHelloButton)鐨勬秷鎭槧灝勫畯銆?BR>
銆銆絎笁緇勬枃浠?DLL涓殑璧勬簮鏂囦歡

//{{NO_DEPENDENCIES}}

// Microsoft Developer Studio generated include file.

// Used by RegularDll.rc

//

#define IDD_DLL_DIALOG 1000

#define IDC_HELLO_BUTTON 1000


銆銆鍒嗘瀽錛?BR>
銆銆鍦∕FC瑙勫垯DLL涓嬌鐢ㄨ祫婧愪篃涓庡湪MFC搴旂敤紼嬪簭涓嬌鐢ㄨ祫婧愭病鏈変粈涔堜笉鍚岋紝鎴戜滑鐓ф牱鍙互鐢╒isual C++鐨勮祫婧愮紪杈戝伐鍏瘋繘琛岃祫婧愮殑娣誨姞銆佸垹闄ゅ拰灞炴х殑鏇存敼銆?BR>
銆銆絎洓緇勬枃浠?MFC瑙勫垯DLL鎺ュ彛鍑芥暟

#include "StdAfx.h"

#include "DllDialog.h"


extern "C" __declspec(dllexport) void ShowDlg(void)

{

CDllDialog dllDialog;

dllDialog.DoModal();

}


銆銆鍒嗘瀽錛?BR>
銆銆榪欎釜鎺ュ彛騫朵笉浣跨敤MFC錛屼絾鏄湪鍏朵腑鍗村彲浠ヨ皟鐢∕FC鎵╁睍綾籆dllDialog鐨勫嚱鏁幫紝榪欎綋鐜頒簡鈥滆鍒欌濈殑姒傜被銆?BR>
銆銆涓庨潪MFC DLL瀹屽叏鐩稿悓錛屾垜浠彲浠ヤ嬌鐢╛_declspec(dllexport)澹版槑鎴栧湪.def涓紩鍑虹殑鏂瑰紡瀵煎嚭MFC瑙勫垯DLL涓殑鎺ュ彛銆?BR>



]]>
MFC瑙勫垯DLL鐨勫垱寤?/title><link>http://www.shnenglu.com/ivenher/articles/1320.html</link><dc:creator>鐖遍キ鐩?/dc:creator><author>鐖遍キ鐩?/author><pubDate>Fri, 25 Nov 2005 10:46:00 GMT</pubDate><guid>http://www.shnenglu.com/ivenher/articles/1320.html</guid><wfw:comment>http://www.shnenglu.com/ivenher/comments/1320.html</wfw:comment><comments>http://www.shnenglu.com/ivenher/articles/1320.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/ivenher/comments/commentRss/1320.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/ivenher/services/trackbacks/1320.html</trackback:ping><description><![CDATA[<BR>銆銆鎴戜滑鏉ヤ竴姝ユ璁茶堪浣跨敤MFC鍚戝鍒涘緩MFC瑙勫垯DLL鐨勮繃紼嬶紝棣栧厛鏂板緩涓涓猵roject錛屽鍥?錛岄夋嫨project鐨勭被鍨嬩負MFC AppWizard(dll)銆傜偣鍑籓K榪涘叆濡傚浘10鎵紺虹殑瀵硅瘽妗嗐?BR> <P align=center><IMG alt="" src="http://www.pconline.com.cn/pcedu/empolder/gj/vc/0509/pic/05-09-22-vc-9.jpg" border=0></P> <P align=center>鍥? MFC DLL宸ョ▼鐨勫垱寤?/P> <P>銆銆鍥?0鎵紺哄璇濇涓殑1鍖洪夋嫨MFC DLL鐨勭被鍒?BR><BR>銆銆2鍖洪夋嫨鏄惁鏀寔automation錛堣嚜鍔ㄥ寲錛夋妧鏈紝 automation 鍏佽鐢ㄦ埛鍦ㄤ竴涓簲鐢ㄧ▼搴忎腑鎿嶇旱鍙﹀涓涓簲鐢ㄧ▼搴忔垨緇勪歡銆備緥濡傦紝鎴戜滑鍙互鍦ㄥ簲鐢ㄧ▼搴忎腑鍒╃敤 Microsoft Word 鎴朚icrosoft Excel鐨勫伐鍏鳳紝鑰岃繖縐嶄嬌鐢ㄥ鐢ㄦ埛鑰岃█鏄忔槑鐨勩傝嚜鍔ㄥ寲鎶鏈彲浠ュぇ澶х畝鍖栧拰鍔犲揩搴旂敤紼嬪簭鐨勫紑鍙戙?BR><BR>銆銆3鍖洪夋嫨鏄惁鏀寔Windows Sockets錛屽綋閫夋嫨姝ら」鐩椂錛屽簲鐢ㄧ▼搴忚兘鍦?TCP/IP 緗戠粶涓婅繘琛岄氫俊銆?CWinApp媧劇敓綾葷殑InitInstance鎴愬憳鍑芥暟浼氬垵濮嬪寲閫氳绔殑鏀寔錛屽悓鏃跺伐紼嬩腑鐨凷tdAfx.h鏂囦歡浼氳嚜鍔╥nclude <AfxSock.h>澶存枃浠躲?BR>娣誨姞socket閫氳鏀寔鍚庣殑InitInstance鎴愬憳鍑芥暟濡備笅錛?BR></P> <P></P> <P class=code>BOOL CRegularDllSocketApp::InitInstance()<BR><BR>{<BR><BR>if (!AfxSocketInit())<BR><BR>{<BR><BR>AfxMessageBox(IDP_SOCKETS_INIT_FAILED);<BR><BR>return FALSE;<BR><BR>}<BR><BR><BR>return TRUE;<BR><BR>}</P> <P><BR>銆銆4鍖洪夋嫨鏄惁鐢盡FC鍚戝鑷姩鍦ㄦ簮浠g爜涓坊鍔犳敞閲婏紝涓鑸垜浠夋嫨鈥淵es,please鈥濄?BR></P> <P align=center><IMG alt="" src="http://www.pconline.com.cn/pcedu/empolder/gj/vc/0509/pic/05-09-22-vc-10.jpg" border=0></P> <P align=center>鍥?0 MFC DLL鐨勫垱寤洪夐」</P><img src ="http://www.shnenglu.com/ivenher/aggbug/1320.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/ivenher/" target="_blank">鐖遍キ鐩?/a> 2005-11-25 18:46 <a href="http://www.shnenglu.com/ivenher/articles/1320.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>MFC瑙勫垯DLL 姒傝堪http://www.shnenglu.com/ivenher/articles/1319.html鐖遍キ鐩?/dc:creator>鐖遍キ鐩?/author>Fri, 25 Nov 2005 10:43:00 GMThttp://www.shnenglu.com/ivenher/articles/1319.htmlhttp://www.shnenglu.com/ivenher/comments/1319.htmlhttp://www.shnenglu.com/ivenher/articles/1319.html#Feedback0http://www.shnenglu.com/ivenher/comments/commentRss/1319.htmlhttp://www.shnenglu.com/ivenher/services/trackbacks/1319.html
銆銆錛?錛?瀹冩槸MFC鐨?BR>
銆銆鈥滄槸MFC鐨勨濇剰鍛崇潃鍙互鍦ㄨ繖縐岲LL鐨勫唴閮ㄤ嬌鐢∕FC錛?BR>
銆銆錛?錛?瀹冩槸瑙勫垯鐨?BR>
銆銆鈥滄槸瑙勫垯鐨勨濇剰鍛崇潃瀹冧笉鍚屼簬MFC鎵╁睍DLL錛屽湪MFC瑙勫垯DLL鐨勫唴閮ㄨ櫧鐒跺彲浠ヤ嬌鐢∕FC錛屼絾鏄叾涓庡簲鐢ㄧ▼搴忕殑鎺ュ彛涓嶈兘鏄疢FC銆傝孧FC鎵╁睍DLL涓庡簲鐢ㄧ▼搴忕殑鎺ュ彛鍙互鏄疢FC錛屽彲浠ヤ粠MFC鎵╁睍DLL涓鍑轟竴涓狹FC綾葷殑媧劇敓綾匯?BR>
銆銆Regular DLL鑳藉琚墍鏈夋敮鎸丏LL鎶鏈殑璇█鎵緙栧啓鐨勫簲鐢ㄧ▼搴忚皟鐢紝褰撶劧涔熷寘鎷嬌鐢∕FC鐨勫簲鐢ㄧ▼搴忋傚湪榪欑鍔ㄦ佽繛鎺ュ簱涓紝鍖呭惈涓涓粠CWinApp緇ф壙涓嬫潵鐨勭被錛孌llMain鍑芥暟鍒欑敱MFC鑷姩鎻愪緵銆?BR>
銆銆Regular DLL鍒嗕負涓ょ被錛?BR>
銆銆錛?錛夐潤鎬侀摼鎺ュ埌MFC 鐨勮鍒橠LL

銆銆闈欐侀摼鎺ュ埌MFC鐨勮鍒橠LL涓嶮FC搴擄紙鍖呮嫭MFC鎵╁睍 DLL錛夐潤鎬侀摼鎺ワ紝灝哅FC搴撶殑浠g爜鐩存帴鐢熸垚鍦?dll鏂囦歡涓傚湪璋冪敤榪欑DLL鐨勬帴鍙f椂錛孧FC浣跨敤DLL鐨勮祫婧愩傚洜姝わ紝鍦ㄩ潤鎬侀摼鎺ュ埌MFC 鐨勮鍒橠LL涓笉闇瑕佽繘琛屾ā鍧楃姸鎬佺殑鍒囨崲銆?BR>
銆銆浣跨敤榪欑鏂規硶鐢熸垚鐨勮鍒橠LL鍏剁▼搴忚緝澶э紝涔熷彲鑳藉寘鍚噸澶嶇殑浠g爜銆?BR>
銆銆錛?錛夊姩鎬侀摼鎺ュ埌MFC 鐨勮鍒橠LL

銆銆鍔ㄦ侀摼鎺ュ埌MFC 鐨勮鍒橠LL 鍙互鍜屼嬌鐢ㄥ畠鐨勫彲鎵ц鏂囦歡鍚屾椂鍔ㄦ侀摼鎺ュ埌 MFC DLL 鍜屼換浣昅FC鎵╁睍 DLL銆傚湪浣跨敤浜哅FC鍏變韓搴撶殑鏃跺欙紝榛樿鎯呭喌涓嬶紝MFC浣跨敤涓誨簲鐢ㄧ▼搴忕殑璧勬簮鍙ユ焺鏉ュ姞杞借祫婧愭ā鏉褲傝繖鏍鳳紝褰揇LL鍜屽簲鐢ㄧ▼搴忎腑瀛樺湪鐩稿悓ID鐨勮祫婧愭椂錛堝嵆鎵璋撶殑璧勬簮閲嶅闂錛夛紝緋葷粺鍙兘涓嶈兘鑾峰緱姝g‘鐨勮祫婧愩傚洜姝わ紝瀵逛簬鍏變韓MFC DLL鐨勮鍒橠LL錛屾垜浠繀欏昏繘琛屾ā鍧楀垏鎹互浣垮緱MFC鑳藉鎵懼埌姝g‘鐨勮祫婧愭ā鏉褲?BR>鎴戜滑鍙互鍦╒isual C++涓緗甅FC瑙勫垯DLL鏄潤鎬侀摼鎺ュ埌MFC DLL榪樻槸鍔ㄦ侀摼鎺ュ埌MFC DLL銆傚鍥?錛屼緷嬈¢夋嫨Visual C++鐨刾roject -> Settings -> General鑿滃崟鎴栭夐」錛屽湪Microsoft Foundation Classes涓繘琛岃緗?BR>

]]>
DLL瀵煎嚭綾?/title><link>http://www.shnenglu.com/ivenher/articles/1318.html</link><dc:creator>鐖遍キ鐩?/dc:creator><author>鐖遍キ鐩?/author><pubDate>Fri, 25 Nov 2005 10:26:00 GMT</pubDate><guid>http://www.shnenglu.com/ivenher/articles/1318.html</guid><wfw:comment>http://www.shnenglu.com/ivenher/comments/1318.html</wfw:comment><comments>http://www.shnenglu.com/ivenher/articles/1318.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/ivenher/comments/commentRss/1318.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/ivenher/services/trackbacks/1318.html</trackback:ping><description><![CDATA[<STRONG>DLL瀵煎嚭綾?BR><BR></STRONG>銆銆DLL涓畾涔夌殑綾誨彲浠ュ湪搴旂敤宸ョ▼涓嬌鐢ㄣ?BR><BR>銆銆涓嬮潰鐨勪緥瀛愰噷錛屾垜浠湪DLL涓畾涔変簡point鍜宑ircle涓や釜綾伙紝騫跺湪搴旂敤宸ョ▼涓紩鐢ㄤ簡瀹冧滑錛堝崟鍑繪澶勪笅杞芥湰宸ョ▼<A >闄勪歡</A>錛夈?BR> <P class=code>//鏂囦歡鍚嶏細point.h錛宲oint綾葷殑澹版槑<BR><BR>#ifndef POINT_H<BR><BR>#define POINT_H<BR><BR>#ifdef DLL_FILE<BR><BR>class _declspec(dllexport) point //瀵煎嚭綾籶oint<BR><BR>#else<BR><BR>class _declspec(dllimport) point //瀵煎叆綾籶oint<BR><BR>#endif<BR><BR>{<BR><BR>public:<BR><BR>float y;<BR><BR>float x;<BR><BR>point();<BR><BR>point(float x_coordinate, float y_coordinate);<BR><BR>};<BR><BR>#endif<BR><BR><BR>//鏂囦歡鍚嶏細point.cpp錛宲oint綾葷殑瀹炵幇<BR><BR>#ifndef DLL_FILE<BR><BR>#define DLL_FILE<BR><BR>#endif<BR><BR>#include "point.h"<BR><BR>//綾籶oint鐨勭己鐪佹瀯閫犲嚱鏁?BR><BR>point::point()<BR><BR>{<BR><BR>x = 0.0;<BR><BR>y = 0.0;<BR><BR>}<BR><BR>//綾籶oint鐨勬瀯閫犲嚱鏁?BR><BR>point::point(float x_coordinate, float y_coordinate)<BR><BR>{<BR><BR>x = x_coordinate;<BR><BR>y = y_coordinate;<BR><BR>}<BR><BR><BR>//鏂囦歡鍚嶏細circle.h錛宑ircle綾葷殑澹版槑<BR><BR>#ifndef CIRCLE_H<BR><BR>#define CIRCLE_H<BR><BR>#include "point.h" <BR><BR>#ifdef DLL_FILE<BR><BR>class _declspec(dllexport)circle //瀵煎嚭綾籧ircle<BR><BR>#else<BR><BR>class _declspec(dllimport)circle //瀵煎叆綾籧ircle<BR><BR>#endif<BR><BR>{<BR><BR>public:<BR><BR>void SetCentre(const point 壟rePoint);<BR><BR>void SetRadius(float r);<BR><BR>float GetGirth();<BR><BR>float GetArea();<BR><BR>circle();<BR><BR>private:<BR><BR>float radius;<BR><BR>point centre;<BR><BR>};<BR><BR>#endif<BR><BR><BR>//鏂囦歡鍚嶏細circle.cpp錛宑ircle綾葷殑瀹炵幇<BR><BR>#ifndef DLL_FILE<BR><BR>#define DLL_FILE<BR><BR>#endif<BR><BR>#include "circle.h"<BR><BR>#define PI 3.1415926<BR><BR>//circle綾葷殑鏋勯犲嚱鏁?BR><BR>circle::circle()<BR><BR>{<BR><BR>centre = point(0, 0);<BR><BR>radius = 0;<BR><BR>}<BR><BR>//寰楀埌鍦嗙殑闈㈢Н<BR><BR>float circle::GetArea()<BR><BR>{<BR><BR>return PI *radius * radius;<BR><BR>}<BR><BR>//寰楀埌鍦嗙殑鍛ㄩ暱<BR><BR>float circle::GetGirth()<BR><BR>{<BR><BR>return 2 *PI * radius;<BR><BR>}<BR><BR>//璁劇疆鍦嗗績鍧愭爣<BR><BR>void circle::SetCentre(const point 壟rePoint)<BR><BR>{<BR><BR>centre = centrePoint;<BR><BR>}<BR><BR>//璁劇疆鍦嗙殑鍗婂緞<BR><BR>void circle::SetRadius(float r)<BR><BR>{<BR><BR>radius = r;<BR><BR>}<BR><BR>綾葷殑寮曠敤錛?BR></P> <P class=code>#include "..\circle.h"銆銆//鍖呭惈綾誨0鏄庡ご鏂囦歡<BR><BR>#pragma comment(lib,"dllTest.lib");<BR><BR><BR>int main(int argc, char *argv[])<BR><BR>{<BR><BR>circle c;<BR><BR>point p(2.0, 2.0);<BR><BR>c.SetCentre(p);<BR><BR>c.SetRadius(1.0);<BR><BR>printf("area:%f girth:%f", c.GetArea(), c.GetGirth());<BR><BR><BR>return 0;<BR><BR>}</P> <P class=code><BR>銆銆浠庝笂榪版簮浠g爜鍙互鐪嬪嚭錛岀敱浜庡湪DLL鐨勭被瀹炵幇浠g爜涓畾涔変簡瀹廌LL_FILE錛屾晠鍦―LL鐨勫疄鐜頒腑鎵鍖呭惈鐨勭被澹版槑瀹為檯涓婁負錛?BR></P> <P class=code>class _declspec(dllexport) point //瀵煎嚭綾籶oint<BR><BR>{<BR><BR>鈥?BR><BR>}</P> <P class=code><BR>銆銆鍜?BR></P> <P class=code>class _declspec(dllexport) circle //瀵煎嚭綾籧ircle<BR><BR>{<BR><BR>鈥?BR><BR>}</P> <P class=code><BR>銆銆鑰屽湪搴旂敤宸ョ▼涓病鏈夊畾涔塂LL_FILE錛屾晠鍏跺寘鍚玴oint.h鍜宑ircle.h鍚庡紩鍏ョ殑綾誨0鏄庝負錛?BR></P> <P class=code>class _declspec(dllimport) point //瀵煎叆綾籶oint<BR><BR>{<BR><BR>鈥?BR><BR>}</P> <P class=code><BR>銆銆鍜?BR></P> <P class=code>class _declspec(dllimport) circle //瀵煎叆綾籧ircle<BR><BR>{<BR><BR>鈥?BR><BR>}</P> <P class=code><BR clear=all></P><img src ="http://www.shnenglu.com/ivenher/aggbug/1318.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/ivenher/" target="_blank">鐖遍キ鐩?/a> 2005-11-25 18:26 <a href="http://www.shnenglu.com/ivenher/articles/1318.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>DLL瀵煎嚭鍙橀噺http://www.shnenglu.com/ivenher/articles/1317.html鐖遍キ鐩?/dc:creator>鐖遍キ鐩?/author>Fri, 25 Nov 2005 10:21:00 GMThttp://www.shnenglu.com/ivenher/articles/1317.htmlhttp://www.shnenglu.com/ivenher/comments/1317.htmlhttp://www.shnenglu.com/ivenher/articles/1317.html#Feedback0http://www.shnenglu.com/ivenher/comments/commentRss/1317.htmlhttp://www.shnenglu.com/ivenher/services/trackbacks/1317.html闄勪歡錛夈?BR>

/* 鏂囦歡鍚嶏細lib.h銆*/

#ifndef LIB_H

#define LIB_H

extern int dllGlobalVar;

#endif


/* 鏂囦歡鍚嶏細lib.cpp */

#include "lib.h"

#include <windows.h>


int dllGlobalVar;


BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)

{

switch (ul_reason_for_call)

{

case DLL_PROCESS_ATTACH:

dllGlobalVar = 100; //鍦╠ll琚姞杞芥椂錛岃祴鍏ㄥ眬鍙橀噺涓?00

break;

case DLL_THREAD_ATTACH:

case DLL_THREAD_DETACH:

case DLL_PROCESS_DETACH:

break;

}

return TRUE;

}


;鏂囦歡鍚嶏細lib.def

;鍦―LL涓鍑哄彉閲?BR>
LIBRARY "dllTest"

EXPORTS

dllGlobalVar CONSTANT

;鎴杁llGlobalVar DATA

GetGlobalVar


銆銆浠巐ib.h鍜宭ib.cpp涓彲浠ョ湅鍑猴紝鍏ㄥ眬鍙橀噺鍦―LL涓殑瀹氫箟鍜屼嬌鐢ㄦ柟娉曚笌涓鑸殑紼嬪簭璁捐鏄竴鏍風殑銆傝嫢瑕佸鍑烘煇鍏ㄥ眬鍙橀噺錛屾垜浠渶瑕佸湪.def鏂囦歡鐨凟XPORTS鍚庢坊鍔狅細

鍙橀噺鍚嶃CONSTANT銆銆銆//榪囨椂鐨勬柟娉?/P>
銆銆鎴?BR>

鍙橀噺鍚嶃DATA銆銆銆 銆//VC++鎻愮ず鐨勬柊鏂規硶

鍦ㄤ富鍑芥暟涓紩鐢―LL涓畾涔夌殑鍏ㄥ眬鍙橀噺錛?BR>

#include <stdio.h>

#pragma comment(lib,"dllTest.lib")

extern int dllGlobalVar;

int main(int argc, char *argv[])

{

printf("%d ", *(int*)dllGlobalVar);

*(int*)dllGlobalVar = 1;

printf("%d ", *(int*)dllGlobalVar);


return 0;

}


銆銆鐗瑰埆瑕佹敞鎰忕殑鏄敤extern int dllGlobalVar澹版槑鎵瀵煎叆鐨勫茍涓嶆槸DLL涓叏灞鍙橀噺鏈韓錛岃屾槸鍏跺湴鍧錛屽簲鐢ㄧ▼搴忓繀欏婚氳繃寮哄埗鎸囬拡杞崲鏉ヤ嬌鐢―LL涓殑鍏ㄥ眬鍙橀噺銆傝繖涓鐐癸紝浠?(int*)dllGlobalVar鍙互鐪嬪嚭銆傚洜姝ゅ湪閲囩敤榪欑鏂瑰紡寮曠敤DLL鍏ㄥ眬鍙橀噺鏃訛紝鍗冧竾涓嶈榪涜榪欐牱鐨勮祴鍊兼搷浣滐細

dllGlobalVar = 1;


銆銆鍏剁粨鏋滄槸dllGlobalVar鎸囬拡鐨勫唴瀹瑰彂鐢熷彉鍖栵紝紼嬪簭涓互鍚庡啀涔熷紩鐢ㄤ笉鍒癉LL涓殑鍏ㄥ眬鍙橀噺浜嗐?BR>
銆銆鍦ㄥ簲鐢ㄥ伐紼嬩腑寮曠敤DLL涓叏灞鍙橀噺鐨勪竴涓洿濂芥柟娉曟槸錛?BR>

#include <stdio.h>

#pragma comment(lib,"dllTest.lib")

extern int _declspec(dllimport) dllGlobalVar; //鐢╛declspec(dllimport)瀵煎叆

int main(int argc, char *argv[])

{

printf("%d ", dllGlobalVar);

dllGlobalVar = 1; //榪欓噷灝卞彲浠ョ洿鎺ヤ嬌鐢? 鏃犻』榪涜寮哄埗鎸囬拡杞崲

printf("%d ", dllGlobalVar);

return 0;

}


銆銆閫氳繃_declspec(dllimport)鏂瑰紡瀵煎叆鐨勫氨鏄疍LL涓叏灞鍙橀噺鏈韓鑰屼笉鍐嶆槸鍏跺湴鍧浜嗭紝絎旇呭緩璁湪涓鍒囧彲鑳界殑鎯呭喌涓嬮兘浣跨敤榪欑鏂瑰紡銆?BR>



]]>
__stdcall綰﹀畾http://www.shnenglu.com/ivenher/articles/1316.html鐖遍キ鐩?/dc:creator>鐖遍キ鐩?/author>Fri, 25 Nov 2005 10:19:00 GMThttp://www.shnenglu.com/ivenher/articles/1316.htmlhttp://www.shnenglu.com/ivenher/comments/1316.htmlhttp://www.shnenglu.com/ivenher/articles/1316.html#Feedback0http://www.shnenglu.com/ivenher/comments/commentRss/1316.htmlhttp://www.shnenglu.com/ivenher/services/trackbacks/1316.html
銆銆Windows緙栫▼涓父瑙佺殑鍑犵鍑芥暟綾誨瀷澹版槑瀹忛兘鏄笌__stdcall鍜宊_cdecl鏈夊叧鐨勶紙鑺傞夎嚜windef.h錛夛細

#define CALLBACK __stdcall //榪欏氨鏄紶璇翠腑鐨勫洖璋冨嚱鏁?BR>
#define WINAPI __stdcall //榪欏氨鏄紶璇翠腑鐨刉INAPI

#define WINAPIV __cdecl

#define APIENTRY WINAPI //DllMain鐨勫叆鍙e氨鍦ㄨ繖閲?BR>
#define APIPRIVATE __stdcall

#define PASCAL __stdcall


銆銆鍦╨ib.h涓紝搴旇繖鏍峰0鏄巃dd鍑芥暟錛?BR>

int __stdcall add(int x, int y);


銆銆鍦ㄥ簲鐢ㄥ伐紼嬩腑鍑芥暟鎸囬拡綾誨瀷搴斿畾涔変負錛?BR>

typedef int(__stdcall *lpAddFun)(int, int);


銆銆鑻ュ湪lib.h涓皢鍑芥暟澹版槑涓篲_stdcall璋冪敤錛岃屽簲鐢ㄥ伐紼嬩腑浠嶄嬌鐢╰ypedef int (* lpAddFun)(int,int)錛岃繍琛屾椂灝嗗彂鐢熼敊璇紙鍥犱負綾誨瀷涓嶅尮閰嶏紝鍦ㄥ簲鐢ㄥ伐紼嬩腑浠嶇劧鏄己鐪佺殑__cdecl璋冪敤錛夛紝

]]>
DllMain鍑芥暟http://www.shnenglu.com/ivenher/articles/1315.html鐖遍キ鐩?/dc:creator>鐖遍キ鐩?/author>Fri, 25 Nov 2005 10:12:00 GMThttp://www.shnenglu.com/ivenher/articles/1315.htmlhttp://www.shnenglu.com/ivenher/comments/1315.htmlhttp://www.shnenglu.com/ivenher/articles/1315.html#Feedback0http://www.shnenglu.com/ivenher/comments/commentRss/1315.htmlhttp://www.shnenglu.com/ivenher/services/trackbacks/1315.html
銆銆鏍規嵁緙栧啓瑙勮寖錛學indows蹇呴』鏌ユ壘騫舵墽琛孌LL閲岀殑DllMain鍑芥暟浣滀負鍔犺澆DLL鐨勪緷鎹紝瀹冧嬌寰桪LL寰椾互淇濈暀鍦ㄥ唴瀛橀噷銆傝繖涓嚱鏁板茍涓嶅睘浜庡鍑哄嚱鏁幫紝鑰屾槸DLL鐨勫唴閮ㄥ嚱鏁般傝繖鎰忓懗鐫涓嶈兘鐩存帴鍦ㄥ簲鐢ㄥ伐紼嬩腑寮曠敤DllMain鍑芥暟錛孌llMain鏄嚜鍔ㄨ璋冪敤鐨勩?BR>
銆銆鎴戜滑鏉ョ湅涓涓狣llMain鍑芥暟鐨勪緥瀛愶紙鍗曞嚮姝ゅ涓嬭澆鏈伐紼?A >闄勪歡錛夈?BR>

BOOL APIENTRY DllMain( HANDLE hModule,

DWORD ul_reason_for_call,

LPVOID lpReserved

)

{

switch (ul_reason_for_call)

{

case DLL_PROCESS_ATTACH:

printf("\nprocess attach of dll");

break;

case DLL_THREAD_ATTACH:

printf("\nthread attach of dll");

break;

case DLL_THREAD_DETACH:

printf("\nthread detach of dll");

break;

case DLL_PROCESS_DETACH:

printf("\nprocess detach of dll");

break;

}

return TRUE;

}


銆銆DllMain鍑芥暟鍦―LL琚姞杞藉拰鍗歌澆鏃惰璋冪敤錛屽湪鍗曚釜綰跨▼鍚姩鍜岀粓姝㈡椂錛孌LLMain鍑芥暟涔熻璋冪敤錛寀l_reason_for_call鎸囨槑浜嗚璋冪敤鐨勫師鍥犮傚師鍥犲叡鏈?縐嶏紝鍗砅ROCESS_ATTACH銆丳ROCESS_DETACH銆乀HREAD_ATTACH鍜孴HREAD_DETACH錛屼互switch璇彞鍒楀嚭銆?BR>鏉ヤ粩緇嗚В璇諱竴涓婦llMain鐨勫嚱鏁板ごBOOL APIENTRY DllMain( HANDLE hModule, WORD ul_reason_for_call, LPVOID lpReserved )銆?BR>
銆銆APIENTRY琚畾涔変負__stdcall錛屽畠鎰忓懗鐫榪欎釜鍑芥暟浠ユ爣鍑哖ascal鐨勬柟寮忚繘琛岃皟鐢紝涔熷氨鏄疻INAPI鏂瑰紡錛?BR>
銆銆榪涚▼涓殑姣忎釜DLL妯″潡琚叏灞鍞竴鐨?2瀛楄妭鐨凥INSTANCE鍙ユ焺鏍囪瘑錛屽彧鏈夊湪鐗瑰畾鐨勮繘紼嬪唴閮ㄦ湁鏁堬紝鍙ユ焺浠h〃浜咲LL妯″潡鍦ㄨ繘紼嬭櫄鎷熺┖闂翠腑鐨勮搗濮嬪湴鍧銆傚湪Win32涓紝HINSTANCE鍜孒MODULE鐨勫兼槸鐩稿悓鐨勶紝榪欎袱縐嶇被鍨嬪彲浠ユ浛鎹嬌鐢紝榪欏氨鏄嚱鏁板弬鏁癶Module鐨勬潵鍘嗐?BR>
銆銆鎵ц涓嬪垪浠g爜錛?BR>

hDll = LoadLibrary("..\\Debug\\dllTest.dll");

if (hDll != NULL)

{

addFun = (lpAddFun)GetProcAddress(hDll, MAKEINTRESOURCE(1));

//MAKEINTRESOURCE鐩存帴浣跨敤瀵煎嚭鏂囦歡涓殑搴忓彿

if (addFun != NULL)

{

int result = addFun(2, 3);

printf("\ncall add in dll:%d", result);

}

FreeLibrary(hDll);

}



銆銆鎴戜滑鐪嬪埌杈撳嚭欏哄簭涓猴細

銆銆process attach of dll

銆銆call add in dll:5

銆銆process detach of dll

銆銆榪欎竴杈撳嚭欏哄簭楠岃瘉浜咲llMain琚皟鐢ㄧ殑鏃舵満銆?BR>
銆銆浠g爜涓殑GetProcAddress ( hDll, MAKEINTRESOURCE ( 1 ) )鍊煎緱鐣欐剰錛屽畠鐩存帴閫氳繃.def鏂囦歡涓負add鍑芥暟鎸囧畾鐨勯『搴忓彿璁塊棶add鍑芥暟錛屽叿浣撲綋鐜板湪MAKEINTRESOURCE ( 1 )錛孧AKEINTRESOURCE鏄竴涓氳繃搴忓彿鑾峰彇鍑芥暟鍚嶇殑瀹忥紝瀹氫箟涓猴紙鑺傞夎嚜winuser.h錛夛細

#define MAKEINTRESOURCEA(i) (LPSTR)((DWORD)((WORD)(i)))

#define MAKEINTRESOURCEW(i) (LPWSTR)((DWORD)((WORD)(i)))

#ifdef UNICODE

#define MAKEINTRESOURCE MAKEINTRESOURCEW

#else

#define MAKEINTRESOURCE MAKEINTRESOURCEA



]]>
闈濵FC DLL 涔?DLL鐨勮皟鐢ㄦ柟寮?/title><link>http://www.shnenglu.com/ivenher/articles/1314.html</link><dc:creator>鐖遍キ鐩?/dc:creator><author>鐖遍キ鐩?/author><pubDate>Fri, 25 Nov 2005 10:10:00 GMT</pubDate><guid>http://www.shnenglu.com/ivenher/articles/1314.html</guid><wfw:comment>http://www.shnenglu.com/ivenher/comments/1314.html</wfw:comment><comments>http://www.shnenglu.com/ivenher/articles/1314.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/ivenher/comments/commentRss/1314.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/ivenher/services/trackbacks/1314.html</trackback:ping><description><![CDATA[<FONT color=#ff0000><STRONG>鍔ㄦ佽皟鐢?/STRONG></FONT><BR>typedef int(*lpAddFun)(int, int); //瀹忓畾涔夊嚱鏁版寚閽堢被鍨?BR><BR>int main(int argc, char *argv[])<BR><BR>{<BR><BR>HINSTANCE hDll; //DLL鍙ユ焺 <BR><BR>lpAddFun addFun; //鍑芥暟鎸囬拡<BR><BR>hDll = LoadLibrary("..\\Debug\\dllTest.dll");<BR><BR>if (hDll != NULL)<BR><BR>{<BR><BR>addFun = (lpAddFun)GetProcAddress(hDll, "add");<BR><BR>if (addFun != NULL)<BR><BR>{<BR><BR>int result = addFun(2, 3);<BR><BR>printf("%d", result);<BR><BR>}<BR><BR>FreeLibrary(hDll);<BR><BR>}<BR><BR>return 0;<BR><BR>}<BR>銆銆鍦ㄤ笂杈圭殑渚嬪瓙涓垜浠湅鍒頒簡鐢扁淟oadLibrary-GetProcAddress-FreeLibrary鈥濈郴緇烝pi鎻愪緵鐨勪笁浣嶄竴浣撯淒LL鍔犺澆-DLL鍑芥暟鍦板潃鑾峰彇-DLL閲婃斁鈥濇柟寮忥紝榪欑璋冪敤鏂瑰紡縐頒負DLL鐨?FONT color=#ff0000>鍔ㄦ佽皟鐢ㄣ?BR></FONT><BR>銆銆鍔ㄦ佽皟鐢ㄦ柟寮忕殑鐗圭偣鏄畬鍏ㄧ敱緙栫▼鑰呯敤 API 鍑芥暟鍔犺澆鍜屽嵏杞?DLL錛岀▼搴忓憳鍙互鍐沖畾 DLL 鏂囦歡浣曟椂鍔犺澆鎴栦笉鍔犺澆錛屾樉寮忛摼鎺ュ湪榪愯鏃跺喅瀹氬姞杞藉摢涓?DLL 鏂囦歡銆?BR><BR>銆銆涓庡姩鎬佽皟鐢ㄦ柟寮忕浉瀵瑰簲鐨勫氨鏄潤鎬佽皟鐢ㄦ柟寮忥紝鈥滄湁鍔ㄥ繀鏈夐潤鈥濓紝榪欐潵婧愪簬鐗╄川涓栫晫鐨勫绔嬬粺涓銆傗滃姩涓庨潤鈥濓紝鍏跺绔嬩笌緇熶竴绔熸棤鏁版鍦ㄦ妧鏈鍩熼噷寰楀埌楠岃瘉錛岃濡傞潤鎬両P涓嶥HCP銆侀潤鎬佽礬鐢變笌鍔ㄦ佽礬鐢辯瓑銆備粠鍓嶆枃鎴戜滑宸茬粡鐭ラ亾錛屽簱涔熷垎涓洪潤鎬佸簱涓庡姩鎬佸簱DLL錛岃屾兂涓嶅埌錛屾繁鍏ュ埌DLL鍐呴儴錛屽叾璋冪敤鏂瑰紡涔熷垎涓洪潤鎬佷笌鍔ㄦ併傗滃姩涓庨潤鈥濓紝鏃犲涓嶅湪銆傘婂懆鏄撱嬪凡璁よ瘑鍒版湁鍔ㄥ繀鏈夐潤鐨勫姩闈欏鉤琛¤錛屻婃槗錛庣郴杈炪嬫洶錛氣滃姩闈欐湁甯革紝鍒氭煍鏂煟鈥濄傚摬瀛︽剰鍛崇潃涓縐嶆櫘閬嶇殑鐪熺悊錛屽洜姝わ紝鎴戜滑緇忓父鍙互鍦ㄦ灟鐕ョ殑鎶鏈鍩熺湅鍒板摬瀛︾殑褰卞瓙銆?BR><BR>銆銆闈欐佽皟鐢ㄦ柟寮忕殑鐗圭偣鏄敱緙栬瘧緋葷粺瀹屾垚瀵笵LL鐨勫姞杞藉拰搴旂敤紼嬪簭緇撴潫鏃?DLL 鐨勫嵏杞姐傚綋璋冪敤鏌怐LL鐨勫簲鐢ㄧ▼搴忕粨鏉熸椂錛岃嫢緋葷粺涓繕鏈夊叾瀹冪▼搴忎嬌鐢ㄨ DLL錛屽垯Windows瀵笵LL鐨勫簲鐢ㄨ褰曞噺1錛岀洿鍒版墍鏈変嬌鐢ㄨDLL鐨勭▼搴忛兘緇撴潫鏃舵墠閲婃斁瀹冦傞潤鎬佽皟鐢ㄦ柟寮忕畝鍗曞疄鐢紝浣嗕笉濡傚姩鎬佽皟鐢ㄦ柟寮忕伒媧匯?BR><BR>銆銆涓嬮潰鎴戜滑鏉ョ湅鐪?STRONG><FONT style="BACKGROUND-COLOR: #ffffff" color=#ff0000>闈欐佽皟鐢ㄧ殑渚嬪瓙</FONT></STRONG>錛屽皢緙栬瘧dllTest宸ョ▼鎵鐢熸垚鐨?lib鍜?dll鏂囦歡鎷峰叆dllCall宸ョ▼鎵鍦ㄧ殑璺緞錛宒llCall鎵ц涓嬪垪浠g爜錛?BR> <P class=code>#pragma comment(lib,"dllTest.lib") <BR><BR>//.lib鏂囦歡涓粎浠呮槸鍏充簬鍏跺搴擠LL鏂囦歡涓嚱鏁扮殑閲嶅畾浣嶄俊鎭?BR><BR>extern "C" __declspec(dllimport) add(int x,int y); <BR><BR>int main(int argc, char* argv[])<BR><BR>{<BR><BR>int result = add(2,3); <BR><BR>printf("%d",result);<BR><BR>return 0;<BR><BR>}</P><BR>銆銆鐢變笂榪頒唬鐮佸彲浠ョ湅鍑猴紝闈欐佽皟鐢ㄦ柟寮忕殑欏哄埄榪涜闇瑕佸畬鎴?STRONG><FONT color=#ff0000>涓や釜鍔ㄤ綔</FONT></STRONG>錛?BR><BR>銆銆(1)鍛婅瘔緙栬瘧鍣ㄤ笌DLL鐩稿搴旂殑.lib鏂囦歡鎵鍦ㄧ殑璺緞鍙婃枃浠跺悕錛?pragma comment(lib,"dllTest.lib")灝辨槸璧瘋繖涓綔鐢ㄣ?BR><BR>銆銆紼嬪簭鍛樺湪寤虹珛涓涓狣LL鏂囦歡鏃訛紝榪炴帴鍣ㄤ細鑷姩涓哄叾鐢熸垚涓涓搴旂殑.lib鏂囦歡錛岃鏂囦歡鍖呭惈浜咲LL 瀵煎嚭鍑芥暟鐨勭鍙峰悕鍙婂簭鍙鳳紙騫朵笉鍚湁瀹為檯鐨勪唬鐮侊級銆傚湪搴旂敤紼嬪簭閲岋紝.lib鏂囦歡灝嗕綔涓篋LL鐨勬浛浠f枃浠跺弬涓庣紪璇戙?BR><BR>銆銆(2)澹版槑瀵煎叆鍑芥暟錛宔xtern "C" __declspec(dllimport) add(int x,int y)璇彞涓殑__declspec(dllimport)鍙戞尌榪欎釜浣滅敤銆?BR><BR>銆銆闈欐佽皟鐢ㄦ柟寮忎笉鍐嶉渶瑕佷嬌鐢ㄧ郴緇烝PI鏉ュ姞杞姐佸嵏杞紻LL浠ュ強鑾峰彇DLL涓鍑哄嚱鏁扮殑鍦板潃銆傝繖鏄洜涓猴紝褰撶▼搴忓憳閫氳繃闈欐侀摼鎺ユ柟寮忕紪璇戠敓鎴愬簲鐢ㄧ▼搴忔椂錛屽簲鐢ㄧ▼搴忎腑璋冪敤鐨勪笌.lib鏂囦歡涓鍑虹鍙風浉鍖歸厤鐨勫嚱鏁扮鍙峰皢榪涘叆鍒扮敓鎴愮殑EXE 鏂囦歡涓紝.lib鏂囦歡涓墍鍖呭惈鐨勪笌涔嬪搴旂殑DLL鏂囦歡鐨勬枃浠跺悕涔熻緙栬瘧鍣ㄥ瓨鍌ㄥ湪 EXE鏂囦歡鍐呴儴銆傚綋搴旂敤紼嬪簭榪愯榪囩▼涓渶瑕佸姞杞紻LL鏂囦歡鏃訛紝Windows灝嗘牴鎹繖浜涗俊鎭彂鐜板茍鍔犺澆DLL錛岀劧鍚庨氳繃絎﹀彿鍚嶅疄鐜板DLL 鍑芥暟鐨勫姩鎬侀摼鎺ャ傝繖鏍鳳紝EXE灝嗚兘鐩存帴閫氳繃鍑芥暟鍚嶈皟鐢―LL鐨勮緭鍑哄嚱鏁幫紝灝辮薄璋冪敤紼嬪簭鍐呴儴鐨勫叾浠栧嚱鏁頒竴鏍楓?BR><img src ="http://www.shnenglu.com/ivenher/aggbug/1314.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/ivenher/" target="_blank">鐖遍キ鐩?/a> 2005-11-25 18:10 <a href="http://www.shnenglu.com/ivenher/articles/1314.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>闈濵FC DLL 涔?澹版槑瀵煎嚭鍑芥暟http://www.shnenglu.com/ivenher/articles/1313.html鐖遍キ鐩?/dc:creator>鐖遍キ鐩?/author>Fri, 25 Nov 2005 09:59:00 GMThttp://www.shnenglu.com/ivenher/articles/1313.htmlhttp://www.shnenglu.com/ivenher/comments/1313.htmlhttp://www.shnenglu.com/ivenher/articles/1313.html#Feedback0http://www.shnenglu.com/ivenher/comments/commentRss/1313.htmlhttp://www.shnenglu.com/ivenher/services/trackbacks/1313.html銆銆DLL涓鍑哄嚱鏁扮殑澹版槑鏈変袱縐嶆柟寮忥細涓縐嶄負4.1鑺備緥瀛愪腑緇欏嚭鐨勫湪鍑芥暟澹版槑涓姞涓奯_declspec(dllexport)錛岃繖閲屼笉鍐嶄婦渚嬭鏄庯紱鍙﹀涓縐嶆柟寮忔槸閲囩敤妯″潡瀹氫箟(.def) 鏂囦歡澹版槑錛?def鏂囦歡涓洪摼鎺ュ櫒鎻愪緵浜嗘湁鍏寵閾炬帴紼嬪簭鐨勫鍑恒佸睘鎬у強鍏朵粬鏂歸潰鐨勪俊鎭?BR>
銆銆涓嬮潰鐨勪唬鐮佹紨紺轟簡鎬庢牱鍚?def鏂囦歡灝嗗嚱鏁癮dd澹版槑涓篋LL瀵煎嚭鍑芥暟錛堥渶鍦╠llTest宸ョ▼涓坊鍔爈ib.def鏂囦歡錛夛細

; lib.def : 瀵煎嚭DLL鍑芥暟

LIBRARY dllTest

EXPORTS

add @ 1


.def鏂囦歡鐨勮鍒欎負錛?BR>
銆銆(1)LIBRARY璇彞璇存槑.def鏂囦歡鐩稿簲鐨凞LL錛?BR>
銆銆(2)EXPORTS璇彞鍚庡垪鍑鴻瀵煎嚭鍑芥暟鐨勫悕縐般傚彲浠ュ湪.def鏂囦歡涓殑瀵煎嚭鍑芥暟鍚嶅悗鍔燖n錛岃〃紺鴻瀵煎嚭鍑芥暟鐨勫簭鍙蜂負n錛堝湪榪涜鍑芥暟璋冪敤鏃訛紝榪欎釜搴忓彿灝嗗彂鎸ュ叾浣滅敤錛夛紱

銆銆(3).def 鏂囦歡涓殑娉ㄩ噴鐢辨瘡涓敞閲婅寮濮嬪鐨勫垎鍙?(;) 鎸囧畾錛屼笖娉ㄩ噴涓嶈兘涓庤鍙ュ叡浜竴琛屻?BR>
銆銆鐢辨鍙互鐪嬪嚭錛屼緥瀛愪腑lib.def鏂囦歡鐨勫惈涔変負鐢熸垚鍚嶄負鈥渄llTest鈥濈殑鍔ㄦ侀摼鎺ュ簱錛屽鍑哄叾涓殑add鍑芥暟錛屽茍鎸囧畾add鍑芥暟鐨勫簭鍙蜂負1銆?BR>

]]>
闈濵FC DLLhttp://www.shnenglu.com/ivenher/articles/dll_2.html鐖遍キ鐩?/dc:creator>鐖遍キ鐩?/author>Fri, 25 Nov 2005 09:58:00 GMThttp://www.shnenglu.com/ivenher/articles/dll_2.htmlhttp://www.shnenglu.com/ivenher/comments/1312.htmlhttp://www.shnenglu.com/ivenher/articles/dll_2.html#Feedback0http://www.shnenglu.com/ivenher/comments/commentRss/1312.htmlhttp://www.shnenglu.com/ivenher/services/trackbacks/1312.html

/* 鏂囦歡鍚嶏細lib.h銆*/

#ifndef LIB_H

#define LIB_H

extern "C" int __declspec(dllexport)add(int x, int y);

#endif


/* 鏂囦歡鍚嶏細lib.cpp銆*/

#include "lib.h"

int add(int x, int y)

{

return x + y;

}

鍒嗘瀽涓婅堪浠g爜錛宒llTest宸ョ▼涓殑lib.cpp鏂囦歡涓庣2鑺傞潤鎬侀摼鎺ュ簱鐗堟湰瀹屽叏鐩稿悓錛屼笉鍚屽湪浜巐ib.h瀵瑰嚱鏁癮dd鐨勫0鏄庡墠闈㈡坊鍔犱簡__declspec(dllexport)璇彞銆傝繖涓鍙ョ殑鍚箟鏄0鏄庡嚱鏁癮dd涓篋LL鐨勫鍑哄嚱鏁般侱LL鍐呯殑鍑芥暟鍒嗕負涓ょ錛?BR>
銆銆(1)DLL瀵煎嚭鍑芥暟錛屽彲渚涘簲鐢ㄧ▼搴忚皟鐢紱

銆銆(2) DLL鍐呴儴鍑芥暟錛屽彧鑳藉湪DLL紼嬪簭浣跨敤錛屽簲鐢ㄧ▼搴忔棤娉曡皟鐢ㄥ畠浠?BR>
涓庣2鑺傚闈欐侀摼鎺ュ簱鐨勮皟鐢ㄧ浉浼鹼紝鎴戜滑涔熷緩绔嬩竴涓笌DLL宸ョ▼澶勪簬鍚屼竴宸ヤ綔鍖虹殑搴旂敤宸ョ▼dllCall錛屽畠璋冪敤DLL涓殑鍑芥暟add錛屽叾婧愪唬鐮佸涓嬶細

#include <stdio.h>

#include <windows.h>

typedef int(*lpAddFun)(int, int); //瀹忓畾涔夊嚱鏁版寚閽堢被鍨?BR>
int main(int argc, char *argv[])

{

HINSTANCE hDll; //DLL鍙ユ焺

lpAddFun addFun; //鍑芥暟鎸囬拡

hDll = LoadLibrary("..\\Debug\\dllTest.dll");

if (hDll != NULL)

{

addFun = (lpAddFun)GetProcAddress(hDll, "add");

if (addFun != NULL)

{

int result = addFun(2, 3);

printf("%d", result);

}

FreeLibrary(hDll);

}

return 0;

}
鑰屽簲鐢ㄧ▼搴忓鏈珼LL鐨勮皟鐢ㄥ拰瀵圭2鑺傞潤鎬侀摼鎺ュ簱鐨勮皟鐢ㄥ嵈鏈夎緝澶у樊寮傦紝涓嬮潰鎴戜滑鏉ラ愪竴鍒嗘瀽銆?BR>
銆銆棣栧厛錛岃鍙ypedef int ( * lpAddFun)(int,int)瀹氫箟浜嗕竴涓笌add鍑芥暟鎺ュ彈鍙傛暟綾誨瀷鍜岃繑鍥炲煎潎鐩稿悓鐨勫嚱鏁版寚閽堢被鍨嬨傞殢鍚庯紝鍦╩ain鍑芥暟涓畾涔変簡lpAddFun鐨勫疄渚媋ddFun錛?BR>
銆銆鍏舵錛屽湪鍑芥暟main涓畾涔変簡涓涓狣LL HINSTANCE鍙ユ焺瀹炰緥hDll錛岄氳繃Win32 Api鍑芥暟LoadLibrary鍔ㄦ佸姞杞戒簡DLL妯″潡騫跺皢DLL妯″潡鍙ユ焺璧嬬粰浜唄Dll錛?BR>
銆銆鍐嶆錛屽湪鍑芥暟main涓氳繃Win32 Api鍑芥暟GetProcAddress寰楀埌浜嗘墍鍔犺澆DLL妯″潡涓嚱鏁癮dd鐨勫湴鍧騫惰祴緇欎簡addFun銆傜粡鐢卞嚱鏁版寚閽坅ddFun榪涜浜嗗DLL涓璦dd鍑芥暟鐨勮皟鐢紱

銆銆鏈鍚庯紝搴旂敤宸ョ▼浣跨敤瀹孌LL鍚庯紝鍦ㄥ嚱鏁癿ain涓氳繃Win32 Api鍑芥暟FreeLibrary閲婃斁浜嗗凡緇忓姞杞界殑DLL妯″潡銆?BR>
銆銆閫氳繃榪欎釜綆鍗曠殑渚嬪瓙錛屾垜浠幏鐭LL瀹氫箟鍜岃皟鐢ㄧ殑涓鑸蹇碉細

銆銆(1)DLL涓渶浠ユ煇縐嶇壒瀹氱殑鏂瑰紡澹版槑瀵煎嚭鍑芥暟錛堟垨鍙橀噺銆佺被錛夛紱

銆銆(2)搴旂敤宸ョ▼闇浠ユ煇縐嶇壒瀹氱殑鏂瑰紡璋冪敤DLL鐨勫鍑哄嚱鏁幫紙鎴栧彉閲忋佺被錛夈?BR>



]]>
Lib 闈欐侀摼鎺ュ簱http://www.shnenglu.com/ivenher/articles/1310.html鐖遍キ鐩?/dc:creator>鐖遍キ鐩?/author>Fri, 25 Nov 2005 09:24:00 GMThttp://www.shnenglu.com/ivenher/articles/1310.htmlhttp://www.shnenglu.com/ivenher/comments/1310.htmlhttp://www.shnenglu.com/ivenher/articles/1310.html#Feedback0http://www.shnenglu.com/ivenher/comments/commentRss/1310.htmlhttp://www.shnenglu.com/ivenher/services/trackbacks/1310.html銆銆Visual C++鏀寔涓夌DLL錛屽畠浠垎鍒槸Non-MFC DLL錛堥潪MFC鍔ㄦ佸簱錛夈丮FC Regular DLL錛圡FC瑙勫垯DLL錛夈丮FC Extension DLL錛圡FC鎵╁睍DLL錛夈?BR>      闈濵FC鍔ㄦ佸簱涓嶉噰鐢∕FC綾誨簱緇撴瀯錛屽叾瀵煎嚭鍑芥暟涓烘爣鍑嗙殑C鎺ュ彛錛岃兘琚潪MFC鎴朚FC緙栧啓鐨勫簲鐢ㄧ▼搴忔墍璋冪敤錛?BR>      MFC瑙勫垯DLL 鍖呭惈涓涓戶鎵胯嚜CWinApp鐨勭被錛屼絾鍏舵棤娑堟伅寰幆錛?BR>      MFC鎵╁睍DLL閲囩敤MFC鐨勫姩鎬侀摼鎺ョ増鏈垱寤猴紝瀹冨彧鑳借鐢∕FC綾誨簱鎵緙栧啓鐨勫簲鐢ㄧ▼搴忔墍璋冪敤銆?BR>
闈欐侀摼鎺ュ簱
鍦╒C++6.0涓璶ew涓涓悕縐頒負libTest鐨剆tatic library宸ョ▼錛屽茍鏂板緩lib.h鍜宭ib.cpp涓や釜鏂囦歡錛宭ib.h鍜宭ib.cpp鐨勬簮浠g爜濡備笅錛?BR>

//鏂囦歡錛歭ib.h
#ifndef LIB_H
#define LIB_H
extern "C" int add(int x,int y);銆銆銆//澹版槑涓篊緙栬瘧銆佽繛鎺ユ柟寮忕殑澶栭儴鍑芥暟
#endif

//鏂囦歡錛歭ib.cpp
#include "lib.h"
int add(int x,int y)
{
return x + y;
}


銆銆緙栬瘧榪欎釜宸ョ▼灝卞緱鍒頒簡涓涓?lib鏂囦歡錛岃繖涓枃浠跺氨鏄竴涓嚱鏁板簱錛屽畠鎻愪緵浜哸dd鐨勫姛鑳姐傚皢澶存枃浠跺拰.lib鏂囦歡鎻愪氦緇欑敤鎴峰悗錛岀敤鎴峰氨鍙互鐩存帴浣跨敤鍏朵腑鐨刟dd鍑芥暟浜嗐?BR>
銆銆鏍囧噯Turbo C2.0涓殑C搴撳嚱鏁幫紙鎴戜滑鐢ㄦ潵鐨剆canf銆乸rintf銆乵emcpy銆乻trcpy絳夛級灝辨潵鑷繖縐嶉潤鎬佸簱銆?BR>
涓嬮潰鏉ョ湅鐪嬫庝箞浣跨敤榪欎釜搴擄紝鍦╨ibTest宸ョ▼鎵鍦ㄧ殑宸ヤ綔鍖哄唴new涓涓猯ibCall宸ョ▼銆俵ibCall宸ョ▼浠呭寘鍚竴涓猰ain.cpp鏂囦歡錛屽畠婕旂ず浜嗛潤鎬侀摼鎺ュ簱鐨勮皟鐢ㄦ柟娉曪紝鍏舵簮浠g爜濡備笅錛?BR>

#include <stdio.h>
#include "..\lib.h"
#pragma comment( lib, "..\\debug\\libTest.lib" ) 銆//鎸囧畾涓庨潤鎬佸簱涓璧瘋繛鎺?BR>int main(int argc, char* argv[])
{
printf( "2 + 3 = %d", add( 2, 3 ) );
}


銆銆闈欐侀摼鎺ュ簱鐨勮皟鐢ㄥ氨鏄繖涔堢畝鍗曪紝鎴栬鎴戜滑姣忓ぉ閮藉湪鐢紝鍙槸鎴戜滑娌℃湁鏄庣櫧榪欎釜姒傚康銆備唬鐮佷腑#pragma comment( lib , "..\\debug\\libTest.lib" )鐨勬剰鎬濇槸鎸囨湰鏂囦歡鐢熸垚鐨?obj鏂囦歡搴斾笌libTest.lib涓璧瘋繛鎺ャ?BR>




]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美日韩国产高清| 久久夜色精品亚洲噜噜国产mv| 亚洲第一主播视频| 久久精品国产99精品国产亚洲性色| 国产欧美精品日韩精品| 欧美一区二区三区免费视| 美女日韩欧美| 亚洲高清一区二区三区| 免费精品99久久国产综合精品| 麻豆成人91精品二区三区| 亚洲韩国精品一区| 亚洲人成网站色ww在线| 国产精品国产三级国产a| 久久av一区二区三区| 久久精品免费看| 一区二区三区导航| av成人国产| 黄色成人在线| 中日韩美女免费视频网址在线观看| 日韩午夜激情av| 韩日欧美一区二区| 99re亚洲国产精品| 黄色日韩网站| 亚洲精品在线观看视频| 国产亚洲综合在线| 最新国产成人av网站网址麻豆| 国产精品久久久久aaaa| 欧美国产视频在线观看| 国产精品永久入口久久久| 欧美国产激情| 国产亚洲综合精品| 一区二区激情| 亚洲日本在线视频观看| 性欧美xxxx大乳国产app| 日韩一级精品视频在线观看| 欧美影院视频| 午夜精品免费视频| 一区二区三区精品视频在线观看| 国产一在线精品一区在线观看| 亚洲精品日韩综合观看成人91| 狠狠色综合一区二区| 中国亚洲黄色| 亚洲免费av网站| 久久久久久久久综合| 久久er精品视频| 欧美亚洲不卡| 亚洲精品影视| 亚洲精美视频| 噜噜噜91成人网| 久久综合久久88| 国产精品久久久久久久久免费桃花| 老司机精品导航| 国产一区二区三区高清| 亚洲自拍电影| 亚洲一区二区三区四区中文 | 亚洲欧洲在线播放| 韩国av一区二区| 含羞草久久爱69一区| 亚洲视频一区| 亚洲一区图片| 欧美色123| 亚洲性图久久| 性做久久久久久免费观看欧美| 欧美日韩亚洲一区二区三区在线| 亚洲成在人线av| 亚洲国产成人久久综合一区| 久久在线免费视频| 欧美二区在线播放| 欧美成人午夜激情在线| 国产乱码精品一区二区三区av | 久久久久青草大香线综合精品| 国产精品爽爽ⅴa在线观看| 亚洲无玛一区| 午夜精品亚洲| 国产一二三精品| 久久久久免费| 亚洲夫妻自拍| 在线亚洲一区观看| 国产精品久久久久毛片软件 | 欧美3dxxxxhd| 亚洲毛片在线观看.| 欧美三级欧美一级| 中日韩高清电影网| 久久久99免费视频| 亚洲国产视频一区二区| 免费一级欧美片在线播放| 亚洲理论在线| 欧美在线一二三| 亚洲黄色在线观看| 国产精品swag| 久久久久看片| 中国女人久久久| 嫩草成人www欧美| 亚洲久久一区| 国产精品一区久久久| 久久久精品2019中文字幕神马| 亚洲高清在线播放| 亚洲资源av| **网站欧美大片在线观看| 欧美极品一区| 欧美一区二区三区在线观看| 欧美黄色网络| 久久精品久久综合| 99国产精品视频免费观看| 国产日韩av一区二区| 欧美另类一区| 亚洲国产高清自拍| 午夜欧美精品久久久久久久| 在线观看视频一区| 国产精品亚洲一区| 欧美freesex8一10精品| 性欧美1819性猛交| 一区二区不卡在线视频 午夜欧美不卡在 | 欧美在线播放一区二区| 最新国产拍偷乱拍精品 | 亚洲国产精品成人综合| 国产精品色网| 欧美日韩午夜视频在线观看| 久久精品理论片| 亚洲一区精品视频| 亚洲乱码视频| 亚洲第一在线视频| 老司机免费视频久久| 性高湖久久久久久久久| aa级大片欧美三级| 亚洲人成人99网站| 在线欧美日韩精品| 韩国精品久久久999| 国产伦精品一区二区三区在线观看 | 国产三级精品三级| 国产精品日本| 欧美性大战久久久久久久蜜臀 | 蜜臀va亚洲va欧美va天堂| 性色av一区二区三区在线观看| 一区二区三区免费观看| 91久久精品网| 亚洲精美视频| 日韩午夜av在线| 日韩视频免费观看高清在线视频| 亚洲国产欧美在线人成| 亚洲国内高清视频| 亚洲黄色高清| 日韩网站在线观看| 亚洲私人影吧| 亚洲在线免费| 欧美在线观看一二区| 欧美一区二区在线播放| 欧美一区二区三区另类 | 午夜精品视频在线观看| 亚洲综合丁香| 欧美一区二区三区在线看| 欧美在线观看网站| 噜噜噜噜噜久久久久久91| 免费在线看成人av| 亚洲国产精品一区二区第一页| 亚洲欧洲一区二区三区| 亚洲免费av电影| 亚洲免费视频网站| 欧美专区亚洲专区| 久久久无码精品亚洲日韩按摩| 免费日韩av片| 欧美日韩一区二区三区免费看 | 美女性感视频久久久| 欧美日本一区二区视频在线观看 | 欧美日韩麻豆| 国产精品一区二区三区四区五区| 国内成+人亚洲| 亚洲精品免费网站| 亚洲一区二区欧美| 久久精品一区二区| 欧美激情精品久久久久久| 日韩视频在线观看一区二区| 亚洲欧美在线免费| 免费欧美电影| 国产婷婷97碰碰久久人人蜜臀| 亚洲国产精品精华液网站| 亚洲一级电影| 免费视频久久| 亚洲一区二区精品在线| 久热精品视频| 国产欧美va欧美va香蕉在| 亚洲国产日韩美| 久久精品国产91精品亚洲| 亚洲国内高清视频| 欧美一区二区三区四区在线| 欧美日韩123| 在线看不卡av| 久久国产成人| 在线一区二区三区四区| 麻豆成人在线观看| 国产九九视频一区二区三区| 亚洲精选一区| 欧美α欧美αv大片| 亚洲女同在线| 欧美日韩系列| 亚洲精品乱码久久久久久按摩观| 久久精品免费电影| 亚洲一区二区三区午夜| 欧美日韩直播| 99视频精品全国免费|