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