u014360338
明明坏哈
采纳率0%
2017-06-22 08:35 阅读 818

C# 加载动态链接库的问题

今天在写一个wpf小程序时,少了2行代码,程序运行的结果就不一样了

这个小程序是调用一个dll,利用dll提供的函数实现某个功能
我的Dll放在程序目录下的Lib文件夹内

调用dll 的语句如下:

[DllImport(@"Lib\TFReader.dll", EntryPoint = "oln_GetHidlist")]
private extern static int oln_GetHidlist(StringBuilder hidList, ref int usbCount);

功能部分代码如下

string TempBase = AppDomain.CurrentDomain.BaseDirectory;
            Environment.CurrentDirectory = TempBase + "Lib";
            TFReader tfReader = new TFReader();
            if (tfReader.OpenReader())
            {
                tfReader.ReadCard(ref cardInfo);
                MessageBox.Show(cardInfo.ToString());
            }

调试的时候中间值

如图,左边是我在不加

             string TempBase = AppDomain.CurrentDomain.BaseDirectory;
            Environment.CurrentDirectory = TempBase + "Lib";

时的中间值,右边是我在控制台界面调用该dll时的中间值(两个变量只是名字不同)

在没有这两句的时候,调用dll时返回的值就是-100

请这两行代码在程序执行过程中起到了什么作用,以至于没有这两行代码的时候wpf在调用dll的时候执行结果与控制台不一样?

谢谢!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

1条回答 默认 最新