非託管MFC呼叫WPF控制項

2021-05-27 06:27:13 字數 1478 閱讀 6596

wpf 做成usercontrol ------> wpf.dll

public partial class wpfusercontrol : usercontrol

}

winform usercontrol包含wpf.dll做成com元件  ---------->wf.dll and wf.tlb

2)專案屬性-->build-->register for com interop 打鉤

3)引用wpf專案所用到的引用,重點是要額外引用windowsformsintergeration庫

4)引用專案wpf

[inte***cetypeattribute(cominte***cetype.inte***ceisidispatch),comvisibleattribute(true)]

public inte***ce iwfuserctrl

[comvisible(true), classinte***ce(classinte***cetype.none), progid("iwfuserctrl.1")]

public partial class wfcontrastagentgridctrl : usercontrol, iwfuserctrl

public bool setwindow(int width,int height)

}

由mfc呼叫com元件tlb,執行com元件dll

1)regasm.exe com.dll

2)#import "com.tlb" no_namespace

3)在dlg類的oninitdialog()中使用

#define id_view_gridctrl 111

const cstring cstrlprogid(_t("iwfuserctrl.1"));

class dlg

bool dlg::oninitdialog()

{ bool locstat = false;

m_wfwnd= new cwnd();

if (m_wfwnd== null)

{cout<<"create m_wfwnd failed"ws_child | ws_visible, crect(10,10,400,800),this,id_view_gridctrl);

if (!locstat)

{cout<<"locstat is false"lpvoid pcsinte***ce = null;

hresult hr = punknown->queryinte***ce(__uuidof(iwfcontrastagentgridctrl),(void **)&pcsinte***ce);

if (hr != s_ok)

{cout<<"hresult hr is failed!"<具體可參見詳細**

託管呼叫非託管的DLL

dllimport createnewprocess.dll charset charset.unicode public static extern bool createprocess marshalas unmanagedtype.lpwstr string fullpath 以上是定義入口,...

託管非託管Dll動態呼叫

最近經常看到有人問託管非託管 dll呼叫的問題。對於動態庫的呼叫其實很簡單。網上很多 都實現了 dll的靜態呼叫方法。我主要談論下動態庫的動態載入。對於託管動態庫,實現動態載入很簡單。files dwwwing dlldemo.rar code assembly.loadfile filepath ...

非託管 呼叫非託管資源的使用

呼叫非託管資源的使用 一.了解 首先我們應該得了解什麼是託管資源,什麼又是非託管資源?帶著問題去找答案,解決問題是不是就容易多了呢,接下來我們先來了解關於託管和非託管。好了廢話到此,是不是感覺好玩啊,不管做什麼,當做玩,那麼你會覺得很輕鬆。接下來進入正題 託管 託管資源 managed resour...