C#编译的dll是否可以在不安装FrameWork的情况下被VC6的程序调用?
C#编译的dll是否可以在不安装FrameWork的情况下被VC6的程序调用?
------解决方案--------------------C#编译的dll是否可以在不安装FrameWork的情况下被VC6的程序调用?
可以使用.net带的TlbImp.exe、TlbExp.exe工具转化后,被vc调用
请参考 <c#高级编程> 或 《vb。net高级编程》
------解决方案--------------------com组件可以
------解决方案--------------------绝对不行的!
------解决方案--------------------lz: c++与c#写的动态库,最大不同在于:后者直接写成了类似com的组件,(不过它是CLR标准)所以我们在net引用动态库是,从来不需要添加头文件!!
所以,你要是net写的动态库能使非net开发环境使用,必须从net的CLR标准转换为windows平台能通用的com标准库,具体做法:(一个范例)
namespace TestEmailer
{
[interfaceType(ComInterfaceType.InterfaceIsDual)]
public interface ICSharp
{
void sendmailMethod();
}
[ClassInterface(ClassInterfaceType.AutoDual)]
class MailM2:ICSharp
{
public void sendmailMethod()
{
……………………
}
}
}
2、创建类型库:
tlbexp TestEmailer.dll
执行后将生成TestEmailer.tlb,用COM Object Viewer看看。