C#编程数据类型和DLL引用的问题

.Net技术 码拜 6年前 (2015-04-01) 429次浏览 0个评论
 
    public partial class Main : Window
    {
        private char* exportpath;
        private char* importpath;
        public Main()
        {
            InitializeComponent();
        }
        public class trans
        {
            [DllImport("trans.dll")]
            public static extern int transmain(char* exportpath,char* importpath);
        }
        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            //创建"打开文件"对话框
            Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();

            //设置文件类型过滤
            dlg.Filter = "图片|*.jpg;*.png;*.gif;*.bmp;*.jpeg";

            // 调用ShowDialog方法显示"打开文件"对话框
            Nullable<bool> result = dlg.ShowDialog();

            if (result == true)
            {
                //获取所选文件名并在FileNameTextBox中显示完整路径
                string filename = dlg.FileName;


                //在image1中预览所选图片
                BitmapImage image = new BitmapImage(new Uri(filename));
                image1.Source = image;
                //image1.Width = image.Width;
                //image1.Height = image.Height;
                //这段代码可以预览图片

            }
        }

        private void Button_Click_2(object sender, RoutedEventArgs e)
        {   
            int isornotsuccess = trans.transmain(*exportpath, *importpath);
        }

        private unsafe void textBox1_KeyDown_1(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.Enter) //key是一个类,这是一个类的判断
            {   
                export=this.textBox1.Text;
                char  *exportpath = export.ToArray();   //把EXPORT 由string转换成char
                
            }
        }

[/code]

新手上路,基础不好,做毕业设计,还请多多指教。

第一个错误是错误 3 与“WpfApplication2.Main.trans.transmain(char*, char*)”最匹配的重载方法具有一些无效参数 C:\Users\Frank\Documents\Visual Studio 2012\Projects\WPFforjiekouchengxu\WpfApplication2\Main.xaml.cs 90 34 WpfApplication2

第二个错误是错误 6 无法将类型“char[]”隐式转换为“char*” C:\Users\Frank\Documents\Visual Studio 2012\Projects\WPFforjiekouchengxu\WpfApplication2\Main.xaml.cs 98 37 WpfApplication2

————————————————————————–
请高手修改

C#编程数据类型和DLL引用的问题
分别是43和51行报错
C#编程数据类型和DLL引用的问题
10分
1,:  是参数无效。  调用方法 传递的参数类型可能错误。
2 : 错误提示很明显了。   转换错误
C#编程数据类型和DLL引用的问题
20分
 [DllImport(“trans.dll”)]
            public static extern int transmain(string exportpath,string importpath);
用string
C#编程数据类型和DLL引用的问题
引用 3 楼 wyd1520 的回复:

 [DllImport(“trans.dll”)]
            public static extern int transmain(string exportpath,string importpath);
用string

这是调用的DLL,外部调用时,要求用char*。。。。。。。。。。。。
能不能再C#里转换类型呢?我看了些其他的帖子,那些方法比如toarray()什么的,居然都在这里找不到定义。。。求助

C#编程数据类型和DLL引用的问题
引用 2 楼 duanzi_peng 的回复:

1,:  是参数无效。  调用方法 传递的参数类型可能错误。
2 : 错误提示很明显了。   转换错误

其实是一个问题,把2中的类型转换了之后,就可以把正确的参数传输给函数了。。。
但是,我不会在C#转换。。。

C#编程数据类型和DLL引用的问题
30分
引用 4 楼 wangzhihongji 的回复:
Quote: 引用 3 楼 wyd1520 的回复:

 [DllImport(“trans.dll”)]
            public static extern int transmain(string exportpath,string importpath);
用string

这是调用的DLL,外部调用时,要求用char*。。。。。。。。。。。。
能不能再C#里转换类型呢?我看了些其他的帖子,那些方法比如toarray()什么的,居然都在这里找不到定义。。。求助

不一定要用char* 如果c里面是char * 那C#里面可以用string 或StringBuider这两个。

C#编程数据类型和DLL引用的问题
30分
引用 4 楼 wangzhihongji 的回复:
Quote: 引用 3 楼 wyd1520 的回复:

 [DllImport(“trans.dll”)]
            public static extern int transmain(string exportpath,string importpath);
用string

这是调用的DLL,外部调用时,要求用char*。。。。。。。。。。。。
能不能再C#里转换类型呢?我看了些其他的帖子,那些方法比如toarray()什么的,居然都在这里找不到定义。。。求助

是ToCharArray()方法吧

C#编程数据类型和DLL引用的问题
10分
char*
确认这不是C++?
C#编程数据类型和DLL引用的问题
引用 6 楼 wyd1520 的回复:
Quote: 引用 4 楼 wangzhihongji 的回复:
Quote: 引用 3 楼 wyd1520 的回复:

 [DllImport(“trans.dll”)]
            public static extern int transmain(string exportpath,string importpath);
用string

这是调用的DLL,外部调用时,要求用char*。。。。。。。。。。。。
能不能再C#里转换类型呢?我看了些其他的帖子,那些方法比如toarray()什么的,居然都在这里找不到定义。。。求助

不一定要用char* 如果c里面是char * 那C#里面可以用string 或StringBuider这两个。

什么意思,调用DLL里的外部函数,必须要char*型的参数啊。。。你的意思,我不太明白。

C#编程数据类型和DLL引用的问题
引用 8 楼 starfd 的回复:

char*
确认这不是C++?

这个C#里引用了c++为源代码的DLL,DLL的外部调用函数需要char*型参数。。。您看,怎么把string变成char*

C#编程数据类型和DLL引用的问题
C#编程数据类型和DLL引用的问题

如图,就是这个问题。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C#编程数据类型和DLL引用的问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!