jjzjj

CComModule

全部标签

c++ - 如何缩小 WTL 应用程序的大小?

WTL应用程序已经非常小了。但是,对于Win32配置,使用VS2005和WTL9.10的静态链接应用程序的重量为136kB(139,264字节)。查看可执行文件时,我注意到oleaut32.dll的静态导入。使用dumpbin粗略地看一下,显示了一个通过ordinal的导入。OLEAUT32.dll4181C0ImportAddressTable41C9B8ImportNameTable0timedatestamp0IndexoffirstforwarderreferenceOrdinal277检查oleaut32.dll发现导出名为VarUI4FromStr。深入研究IDA,我发现V

windows - 为什么我的 COM 工厂在程序生命周期内从未被释放?

我有一个nativeC++ATL进程内COM服务器。单独的测试程序调用CoInitialize(),调用CoCreateInstance(),然后在指针上调用Release(),然后调用CoUnitialize()并退出。如果我在VisualC++调试器下运行测试程序,调试CRT会报告一次内存泄漏,并且每次分配的编号都是相同的。我用了anallocationhook发现没有返回堆的对象是类工厂对象。所以基本上会发生以下情况:程序调用CoCreateInstance()COM内部调用DllGetClassObject()ATL实例化工厂并将所有权传递给调用者(COM内部)然后工厂永远不会