关于dll文件间的调用问题!!

dw2003 2005-07-20 09:59:25
我用C#写的如下面程序命名空间结构:
A.B1 //生成A_B1.dll,这个文件我放一些通用的类
A.B2 //打算生成A_B2.dll,其中这里要调用到A.B1的一些类,但编译时总是通不过,说找不到命名空间.
难道同一个命名空间不能生成多个之间能相互调用的dll吗?请问具体如何操作.
...全文
163 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
dw2003 2005-07-30
  • 打赏
  • 举报
回复
A_B1.cs代码如下:
生成对应:A_B1.dll

using System;
namespace A.B1
{
public class wmessage
{
string m_message;
public wmessage()
{
m_message="Welcome !";
}
public string Message
{
get
{
return m_message;
}
set
{
m_message=value;
}
}
}
}



A_B2.cs代码如下:
生成对应:A_B2.dll


using A.B1;//调用1dll.dll的mess.first命名空间

using System;
using A.B1;
namespace A.B2
{
class welcomeapp//建立类
{
public static void Main()
{
wmessage m=new wmessage(); //
Console.WriteLine(m.Message);
Console.WriteLine("Please input your name:");
string input=Console.ReadLine();
m.Message="Welcome "+input;//给新建的事例重新写入值。
Console.WriteLine(m.Message);//
}
}
}

这就是我上面做的,把dll文件放在bin里,但在编译A_B2.cs时就出错了.
错误说:没有namespace A.B2
jerrylau86853 2005-07-30
  • 打赏
  • 举报
回复
忘记了,using System;至}是另一个文件.cs
jerrylau86853 2005-07-30
  • 打赏
  • 举报
回复
1dll.cs代码如下:

namespace mess.first
{
public class wmessage
{
string m_message;
public wmessage()
{
m_message="Welcome !";
}
public string Message
{
get
{
return m_message;
}
set
{
m_message=value;
}
}
}
}

using System;
using mess.first;//调用1dll.dll的mess.first命名空间
class welcomeapp//建立类
{
public static void Main()
{
wmessage m=new wmessage(); //新建wmessage事例,从1dll.dll里生成的。
Console.WriteLine(m.Message);
Console.WriteLine("Please input your name:");
string input=Console.ReadLine();
m.Message="Welcome "+input;//给新建的事例重新写入值。
Console.WriteLine(m.Message);//借用1dll.dll的mess.first.wmessage类生成新的类型。
}
}


编译1dll.cs成1dll.dll

csc /t:library /r:1dll.dll 1dll.cs
dw2003 2005-07-30
  • 打赏
  • 举报
回复
"引用dll"是什么意思.
jerrylau86853 2005-07-30
  • 打赏
  • 举报
回复
只有类代码可以编译,你这什么跟什么嘛!居然把执行程序也编译成DLL

你怎么会把A_B2.cs编译成dll呢!郁闷,这可是程序入口耶public static void Main()
这个A_B1.cs是类文件,而另一个是主文件!!!可以把A_B2.cs编译成.EXE执行啊


你怎么会把A_B2.cs编译成dll呢!郁闷,这可是程序入口耶public static void Main()
这个A_B1.cs是类文件,而另一个是主文件!!!可以把A_B2.cs编译成.EXE执行啊


你怎么会把A_B2.cs编译成dll呢!郁闷,这可是程序入口耶public static void Main()
这个A_B1.cs是类文件,而另一个是主文件!!!可以把A_B2.cs编译成.EXE执行啊
dw2003 2005-07-30
  • 打赏
  • 举报
回复
哦,我那是复制过去的,没看清之前用的main()函数,对不起,我是个新手,现在正学web开发这一部,请多多提点.
如果A_B2.cs改成:

using System;
using A.B1;
namespace A.B2
public class BB : System.Web.UI.Page
{

private void Page_Load(object sender, System.EventArgs e)
{
wmessage m=new wmessage(); //
Console.WriteLine(m.Message);
Console.WriteLine("Please input your name:");
string input=Console.ReadLine();
m.Message="Welcome "+input;//给新建的事例重新写入值。
Console.WriteLine(m.Message);//
}
}
dw2003 2005-07-30
  • 打赏
  • 举报
回复
其实我的目的是:
A.B1是一个放通用类的命名空间生成dll文件后(为的是重复利用),以后再开发其它应用时,我就直接把这文件放到bin中,然后在其它命名空间中调用,但当我在用using引用后,编译时就产生上面的错误了.
jerrylau86853 2005-07-30
  • 打赏
  • 举报
回复
学过C#没有啊!晕倒,居然有你这样写程序的。
jerrylau86853 2005-07-30
  • 打赏
  • 举报
回复
你怎么会把A_B2.cs编译成dll呢!郁闷,这可是程序入口耶public static void Main()
这个A_B1.cs是类文件,而另一个是主文件!!!可以把A_B2.cs编译成.EXE执行啊
dw2003 2005-07-30
  • 打赏
  • 举报
回复
上面写错了应是这样:


A_B1.cs代码如下:
生成对应:A_B1.dll

using System;
namespace A.B1
{
public class wmessage
{
string m_message;
public wmessage()
{
m_message="Welcome !";
}
public string Message
{
get
{
return m_message;
}
set
{
m_message=value;
}
}
}
}



A_B2.cs代码如下:
但编译之前我把用命令编译的A_B1.dll放入bin中,后把A_B1.cs删除,然后用命令编译A_B2.cs





using System;
using A.B1;//调用1dll.dll的mess.first命名空间
namespace A.B2
{
class welcomeapp//建立类
{
public static void Main()
{
wmessage m=new wmessage(); //
Console.WriteLine(m.Message);
Console.WriteLine("Please input your name:");
string input=Console.ReadLine();
m.Message="Welcome "+input;//给新建的事例重新写入值。
Console.WriteLine(m.Message);//
}
}
}

这就是我上面做的,把dll文件放在bin里,但在编译A_B2.cs时就出错了.
错误说:没有namespace A.B1
jerrylau86853 2005-07-30
  • 打赏
  • 举报
回复
.........
什么的什么的什么
dw2003 2005-07-30
  • 打赏
  • 举报
回复
不过我编译A_B2.cs时,在bin中只有一个A_B1.dll文件,而A_B1.cs已删除.
DanielQQ 2005-07-20
  • 打赏
  • 举报
回复
如果命名空间相同不需要using,但必须引用dll,也就是如Mynxer(长发飘飘)所说的
Mynxer 2005-07-20
  • 打赏
  • 举报
回复
代码中用
using namespaceOfA_B1

编译的时候要加上/r:A_B1.dll
如下:
csc /t:library /r:A_B1.dll A_B2.cs
dw2003 2005-07-20
  • 打赏
  • 举报
回复
你的意思是在A.B2中增加:
using A.B1
吗?
DanielQQ 2005-07-20
  • 打赏
  • 举报
回复
需要添加dll的引用
jimu8130 2005-07-20
  • 打赏
  • 举报
回复
你的A。b2里面要用b1的得添加对他的dll的引用才行

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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