首页 新闻 会员 周边

c#怎么调用c++的类和函数

0
悬赏园豆:50 [待解决问题]

最近用c++做了一个简单的图书管理系统,有reader,book,readerDatabase,bookDatabase四个类,和借书还书两个方法。一开始是用的控制台,现在给这个小的图书管理系统,做一个界面,想法是用c#做一个winform程序,其中去调用c++的类,我怎么把我的c++代码封装成dll给c#调用呢?.net的托管c++类是怎么写的呀?假如我去学这方面的知识该去看哪些书呢?什么的书都没有讲解这方面的知识的。希望各位朋友给点建议指点,或者是推荐一些相关书籍。非常感谢能够帮助以及也在关注该问题的朋友!

十点阳光的主页 十点阳光 | 初学一级 | 园豆:121
提问于:2016-06-20 13:16
< >
分享
所有回答(6)
0

这是闲的蛋疼吧,你把C++的这些用C#重写一遍也没啥大不了的。

爱编程的大叔 | 园豆:30839 (高人七级) | 2016-06-20 13:18

做个简单的只是为了摸石头过河,我知道c#直接做也可以,这不是为了以后做复杂的东西做准备吗

支持(0) 反对(0) 十点阳光 | 园豆:121 (初学一级) | 2016-06-20 13:21
0

VC++ CLR或者直接P/Invoke

jello chen | 园豆:7336 (大侠五级) | 2016-06-20 14:04
0
CodeHsu | 园豆:5468 (大侠五级) | 2016-06-20 14:15
0

dllimport

hahanonym | 园豆:1460 (小虾三级) | 2016-06-20 16:04
0

最近刚碰到类似的问题,贴个代码仅供参考

//新建一个类,引用DLL,继承DLL接口函数
//有指针的话,指针用IntPtr定义,结构体ref BookInfo info-重新定义DLL中结构体
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;

public class Device
{
    /// <summary>
    ///初始化接口
    ///参数说明:无
    ///返回值:成功返回0,错误返回-1
    /// </summary>
    /// <returns></returns>
    [DllImport(@"TuShu.dll")]
    public static extern int Init();

    /// <summary>
    /// Book   /// </summary>
    /// <param name=""></param>
    [DllImport(@"TuShu.dll")]
    public static extern int Book(Guid guid, IntPtr BookType, int BookNo);
}

        //form.cs中可这样写

        /// <summary>
        /// 初始化
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                //初始化
                int Ret = Device.Init();
                if (Ret == 0)
                {
                    MessageBox.Show("初始化成功!");
                }
                else
                {
                    //失败
                    MessageBox.Show("初始化失败:" + Ret.ToString());
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("初始化异常:" + ex.Message);
            }
        }

 

じ☆忆の流苏 | 园豆:202 (菜鸟二级) | 2016-06-22 14:29
0

参考http://www.cnblogs.com/2018/archive/2013/05/07/3064086.html

http://www.cnblogs.com/namek/archive/2010/08/24/1807462.html

Eiffelling | 园豆:76 (初学一级) | 2016-08-06 11:37
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册