MFC应用程序创建没有CLR依赖项的WPF控件

时间:2016-04-12 14:46:46

标签: dll mfc

我希望MFC应用程序可以创建没有CLR依赖的WPF控件。我的解决方案是创建一个具有CLR依赖性的MFC常规Dll,它调用我的WPF控件libarary来创建一个wpf控件。 MFC应用程序调用此MFC常规Dll来创建wpf控件。问题是当调用代码“HwndSource ^ source = gcnew HwndSource(0,0,0,0,0,name,IntPtr :: Zero);”时,应用程序抛出异常“调用线程必须是STA ,因为许多UI组件需要这个“。我尝试了几个解决方案,如SetApartmentState,LoadLibrary,CreateThread,Threading :: Start等,但它们从未工作过。

MFC应用程序是一个对话框基础应用程序,调用代码是:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" indent="yes" />
  <xsl:key name="case" match="case" use="RMEM" />

  <xsl:template match="@*|node()">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
  </xsl:template>

  <xsl:template match="folder">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
      <xsl:apply-templates select="key('case', FOLDERID)" />
    </xsl:copy>
  </xsl:template>

  <xsl:template match="AWD" />
</xsl:stylesheet>

MFC常规dll在共享动态库中使用MFC dll,导出功能为:

void CMFCApplication1Dlg::OnBnClickedButton1()
{
    CreateCLRControl();
}

0 个答案:

没有答案