打开文件对话框导致WPF应用程序中的DLL问题

时间:2014-03-02 12:44:24

标签: c# c++ wpf dll openfiledialog

我使用.Net framework 4.0在VS2012中有一个WPF应用程序项目 我的WPF应用程序有一些对Managed C ++ dll的引用。

我希望用户能够选择要打开的文件,但是当我在托管C ++ dll中的某个函数之前调用 OpenFileDialog 时,我得到一个 System.BadImageFormatException ,但如果我发送硬编码路径而不是让用户选择使用OpenFileDialog,则应用程序正常工作。
当我查找 System.BadImageFormatException 时,我发现这是指格式问题,但我在x64位机器上运行并编译包括c ++ dll到x64位格式的所有内容,我仍然继续这个例外。

OpenFileDialog是否存在一些我不知道的已知问题?

以下是我的代码示例:

private void WorkingFunction()
{
    String filePath = @"C:\MyFile.txt";
    // Calling the managed c++ functions...
}

private void NotWorkingFunction()
{
    Microsoft.Win32.OpenFileDialog fileDialog = new Microsoft.Win32.OpenFileDialog();
    Nullable<bool> result = fileDialog.ShowDialog(); 
    if(result == true)
    {
        String filePath = fileDialog.FileName;
        // Calling the managed c++ functions...
    }
}

1 个答案:

答案 0 :(得分:0)

您可以尝试在x86 expilicitly中编译代码,这意味着您将以32位模式运行应用程序。

否则您可以使用Windows窗体中包含的相同类。

System.Windows.Forms.OpenFileDialog