DLL只能调用一次

良心不安 2007-06-05 08:29:50
用vc编写的MFC Dll程序在C#中调用 dll提供的是DCOM的接口函数
调用如下:
namespace AClasstest
{
using System.Runtime.InteropServices;
using System.ComponentModel;
class CDll
{
[DllImport("DcomDll.dll", EntryPoint = "test", SetLastError = true)]
public static extern int test();
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
int c = 0;
c = CDll.test();
if (c == 1)
MessageBox.Show("1");
else
MessageBox.Show("0");
}
}
}
在VS中编译后运行的时候不能够正确连接DCOM的服务,但是在生成好后的文件下运行的时候能够正确运行一次,然后后面就不成功。但在vc的应用程序的情况下是能够正常运行的。
希望做过这方面的朋友帮忙解决下!
...全文
185 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovingkiss 2007-06-06
  • 打赏
  • 举报
回复
这是你说错了——实际上你的函数已经执行了,只是返回值错误,建议逐步设置断点然后进行错误判断
函数里面CDll.test
例如
a=1
。。。代码
a=2
.....代码
return a '先别返回正确与否

看看问题出在哪一行,确定了才好解决。
良心不安 2007-06-06
  • 打赏
  • 举报
回复
在C#中我单击按钮事件,只有发布出来后的程序在每次重新运行的时候能够正确响应一次,也就是messagebox能够正确地显示出1,然后后面单击按钮都是显示的0。而且vs开启源程序运行的时候不管什么时候都显示的是0。而vc里怎么都可以。好奇怪!
lovingkiss 2007-06-06
  • 打赏
  • 举报
回复
关闭程序的时候
MyDll.ToDoClose

DLL里面的ToDoClose方法执行本身释放Close或者dispose之类的操作
lovingkiss 2007-06-06
  • 打赏
  • 举报
回复
有些类库需要在DLL端执行释放的——否则不被回收,自然只能调用一次

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧