本文介绍了如何将对象类传递给DLL?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在运行Windows 7 Enterprise 64位和Visual Studio 2012.程序和DLL库以及类都是.NET 4.0。
当它开始时该程序使用Dictionaries来包含在特定目录中找到的文件。如词典myDictionary< string,>其中字符串是文件名,int值是状态。
我试图将它传递给DLL函数。在DLL方面似乎没有问题,但在程序方面,它说我不能将字典用作类型定义。
我能想到的唯一解决方案是将字典封装在公共类中,然后将该类作为对象发送给函数。
所以我的过程是:
1.实例化新课程。示例:文件myFiles = new Files();
2.将我跟踪的所有文件添加到myFiles类中的Dictionaries并设置每个文件的默认状态。
3.在项目中引用DLL,然后使用using语句进行设置。它也在主项目中实例化。示例:ValidateFiles myvalidation = new ValidateFiles();
4.在DLL中有一个名为public void ValidateFile(object MyFiles){...}的函数,它将读取每一行并验证它是正确格式化。
我的问题是如何让Object MyFiles看到我创建的类中的Public方法和变量并作为参数发送? div class =h2_lin>解决方案
I am running Windows 7 Enterprise 64bit and Visual Studio 2012. The Program and the DLL Library and the class are all .NET 4.0.
As it started out the program had Dictionaries to contain the files found in a specific directory. Such as Dictionary myDictionary<string,> where the string was the filename and the int value was the status.
I tried to pass this along to the DLL function. On the DLL side there didn't seem to be a problem but on the program side it said that I could not use the Dictionary as a Type definition.
The only solution I could come up with was to encapsulate the dictionaries within a public class and then send that class to the function as an object.
So my Process is:
1.Instantiate the new class. Example: Files myFiles = new Files();
2.Add all the files I am tracking to the Dictionaries within the myFiles class and set the default status of each file.
3.The DLL is Referenced within the project and then set with a "using" statement. It is also instantiated within the main project. Example: ValidateFiles myvalidation = new ValidateFiles();
4.In the DLL there is a function called public void ValidateFile(object MyFiles) {...} which will read every line and verify that it is correctly formated.
The question I have is how do I get the Object MyFiles to see the Public methods and variables within the class I created and sent as an argument?
解决方案
这篇关于如何将对象类传递给DLL?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!