2014-03-02 38 views
0

我在VS2012中使用.Net框架4.0有一个WPF应用程序项目。
我的WPF应用程序有一些对Managed C++ dll的引用。打开文件对话框导致WPF应用程序中的dll问题

我希望用户能够选择要打开的文件,但是当我从托管C++ DLL函数的一些前致电打开文件对话框我得到一个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... 
    } 
} 

回答

0

你可以尝试编译代码在86 expilicitly这意味着你要运行在32位模式下的应用程序。

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

System.Windows.Forms.OpenFileDialog 
+0

我不能编译我的应用程序到x86,当我尝试使用System.Windows.Forms.OpenFileDialog我有同样的问题。 – user3370390