0
[DllImport("Project1.dll")]
unsafe static extern void CallFu(string OpenFile, string SaveFile);
這是C++的dll 函數get image文件字符串做不合適並將新圖像保存到SaveFile字符串。C++ dll和WPF
extern "C" void __export __stdcall CallFu(char* filepath,char* savefilepath)
然後我試圖把保存的圖像ImageControl
string save = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\segmentedKletka.bmp";
private void B_AutoSegm_Click(object sender, System.Windows.RoutedEventArgs e)
{
string open = MainWindow.OsnovnoyClassPict.Pict_Source;
CallFu(open, save);
BitmapImage s_bmp = new BitmapImage(new Uri(save));
Slider_Kletka.Maximum = Slider_Yadro.Maximum = s_bmp.Width;
Slider_Kletka.Value = Slider_Yadro.Value = s_bmp.Width/2;
Slider_Kletka.IsEnabled = Slider_Yadro.IsEnabled = true;
Img_Kletka.Source = Img_Yadro.Source = s_bmp;
}
,在這裏我得到
型 'System.ArithmeticException' 未處理的異常出現在mscorlib.dll錯誤
其他信息:Переполнениеилипотеряточностиварифметическойоперации。 (算術運算中出現溢出或下溢)
如何正確使用WPF中的C++ dll?
[DllImport("Project1.dll")]
unsafe static extern void CallFu(string OpenFile, string SaveFile);
public Form1()
{
InitializeComponent();
string open = "D:\\SPPR_Gem\\SPPRGem\\bin\\Release\\kletki\\1a2a917d-45379cc5-451b3e95-a20e772c.bmp";
string save = "D:\\Projects\\SPPRGem\\SPPRGem\\bin\\Release\\segmentedKletka.bmp";
CallFu(open, save);
pictureBox1.Image = new Bitmap(save);
}
這僅限於c#。我沒有錯誤。
P.S.對不起,我的英語不好=)
你嘗試調用帶有C++項目中完全相同的文件路徑相同的方法? – 2012-01-12 15:55:02
@jberger 是的,一切正常 – Risa 2012-01-12 17:21:48
可否請編輯包含完整的堆棧跟蹤? – 2012-01-12 17:39:08