zoukankan      html  css  js  c++  java
  • dll开发中遇到的问题

    刚碰到个问题,我的一个项目中引用了一个dll,这个dll又引用了另一个dll,我把这俩个都放在bin文件夹下,但是会报错,说第二个dll找不到。把它放到系统文件夹system32下就没事了。

    但是遇到一个奇怪的问题,我的各部分代码是只有的:

    Text.c

    int plus(int a,int b)
    {
        return a+b;
    }
    char *cplus(char *a,char **b)
    {
        sprintf(*b,"%s",a);
        int f=1+1;
        return a;
    }

    Text.h

    TEXT_API int plus(int a,int b);

    TEXT_API char *cplus(char *a,char **b);
    _Text.cs

    public class Class1
        {
            [DllImport("text.dll", EntryPoint = "plus", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
            public static extern int qplus(int a, int b);
            [DllImport("text.dll", EntryPoint = "cplus", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
            public static extern string cplus(string a, ref string b);
        }

    Index.cs

     private void button1_Click(object sender, EventArgs e)
            {
                int tem = Class1.qplus(1, 2);
                string a = "111";
                MessageBox.Show(tem.ToString());
            }

            private void button2_Click(object sender, EventArgs e)
            {
                string a = "111";
                string b = "";
                string c=Class1.cplus(a,ref b);
                MessageBox.Show(b);
                MessageBox.Show(c);

            }
    当然这样是没有问题的,但是当c语言部分返回*b的时候,在最后的Index中调用cplus函数的返回值就会有问题。个人表示很不解,目前也不知是何原因,先放在这里吧。如果有哪位大神看到了还请赐教。

  • 相关阅读:
    推荐6款极具个性化的在线生成logo的网站
    网站图标制作
    关于域名如何指向WordPress homepage问题的解决
    WordPress 博客文章中google adsense广告展示方法之一
    WordPress网站搬家经验总结
    WordPress网站搬家的问题
    Linux RAID卡优化
    说说JSON和JSONP,也许你会豁然开朗
    可以嵌入程序的chrome
    maven jetty指定端口启动
  • 原文地址:https://www.cnblogs.com/zhaoxinshanwei/p/3983660.html
Copyright © 2011-2022 走看看