使用控制台应用程序,我正在使用c ++ com dll来调用函数。
我添加了已注册的DLL作为项目的参考,然后我实例化对象并调用该函数。 (我应该注意到,我并没有像其他人那样使用pinvoke)
我应该得到一个字符串作为结果,但我只是得到一个空字符串。我可以获得任何形式的输出的唯一方法是启用对非托管代码的调试,从中我可以看到它正在正确执行并返回结果。
我已经搜索了stackoverflow和其他一些网站,并且找不到与之匹配的内容。我有什么想法,或者我怎么能让它返回一个值?
编辑:根据要求,这是代码 -
COMMODCHECKLib.Modcheck mod = new COMMODCHECKLib.Modcheck();
string output = mod.check("123456");
答案 0 :(得分:1)
我建议首先检查问题是否在C#代码或COM库中。为此,您可以使用例如一个VB脚本文件(.vbs),如
(test.vbs)
Set mod = CreateObject("COMMODCHECKLib.ModCheck")
WScript.echo(mod.check("123456"))
只需从命令行运行此脚本(输入test.vbs
)。
如果这给出了所需的输出,至少你知道问题出在C#端。
答案 1 :(得分:0)
似乎DLL的文档不正确并且将检查函数作为我需要的函数,但事实上有一个名为 checkAllocate 的函数,它是一个我需要使用。道歉家伙 - 非常感谢你的时间和努力