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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐