[入门] 不暴露具体实现的类库写法
shawind
2007-05-18
都找了本叫什么<COM本质论>书准备啃了-_-!
原来是这样实现的,看上去非常明了。 多谢qiezi,十分感谢。 也感谢其他兄弟提供意见。 |
|
qiezi
2007-05-18
想起来了,export出去的函数加上extern(C)或extern(Window),不然名称会被加上模块名,链接可能有些问题。
export extern(C) IFoo GetFooObject(); 实现: extern(C) IFoo GetFooObject(){ return new Foo; } |
|
oldrev
2007-05-18
嗯,几乎就是COM了,呵呵。
COM DLL 一般都导出一个叫 CreateXXXXInstance() 的函数 |
|
shawind
2007-05-18
在qiezi给出这个解决方法前,我看了一个COM的文章,上面说了com的两种实现办法。一种是Create Instance的,还有一个是直接用一个接口类型指针。
我原来是想按后一个办法写的(因为不需要dll) 个人水平太低,没实现出来...... |
|
tomqyp
2007-05-18
除了shawind的办法,有没有什么办法可以让导出的类可以直接new
|
|
oldrev
2007-05-18
qiezi 的办法不要 DLL,当然用也可以
|
|
oldrev
2007-05-18
tomqyp 写道 除了shawind的办法,有没有什么办法可以让导出的类可以直接new
想想为什么C++的ctor为什么不能是虚的 |
|
tomqyp
2007-05-18
oldrev 写道 想想为什么C++的ctor为什么不能是虚的 还真是从来没有想过,是因为如果是虚的那么子类new是会有二义性吗?但这也只能说明用接口的办法不能new啊 |
|
oldrev
2007-05-18
如果你用C++,那么 Effective C++ 和 More Effective C++ 两本书是必读的
|
|
hqs7636
2011-12-05
oldrev 写道 如果你用C++,那么 Effective C++ 和 More Effective C++ 两本书是必读的
这个人叛变了可惜 |