来自库的头声明了类GUID
static const GUID CLSID_EH264VD =
{ 0x96b9d0ed, 0x8d13, 0x4171, { 0xa9, 0x83, 0xb8, 0x4d, 0x88, 0xd6, 0x27, 0xbe } };
Run Code Online (Sandbox Code Playgroud)
我想编写一个直接从dll创建对象的函数,而不需要注册dll,因此我需要将每个CLSID映射到dll名称.就像是
Create<CLSID_EH264VD>()
Run Code Online (Sandbox Code Playgroud)
这将取决于专业化,如
template<>
struct dll<CLSID_EH264VD>
{
char const* filename = ""mc_dec_avc_ds.ax";
}
Run Code Online (Sandbox Code Playgroud)
因此尝试使用未知的dll实例化未注册的类是一个编译时错误.
问题是模板不能专门用于GUID.链接的问题说constexpr允许以允许特化的方式声明GUID,但Visual C++不支持最新版本(2012)中的constexpr.任何解决方法?