明明坏哈 2017-06-22 08:35 采纳率: 0%
浏览 841

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条回答

  • zqbnqsdsmd 2018-09-01 15:42
    关注
    评论

报告相同问题?

悬赏问题

  • ¥50 comsol稳态求解器 找不到解,奇异矩阵有1个空方程返回的解不收敛。没有返回所有参数步长;pid控制
  • ¥15 怎么让wx群机器人发送音乐
  • ¥15 fesafe材料库问题
  • ¥35 beats蓝牙耳机怎么查看日志
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功