今天拿到厂商的SDK,是用COM组件形式开发的,我在编译时老得到LNK2001错误, 请问该怎么解决?
void main()
{
CoInitialize(NULL);
ICUIExternal6 * pExt = NULL;
CLSID clsid;
CLSIDFromProgID(L"IgfxExt.CUIExternal", &clsid); HRESULT hr = CoCreateInstance(clsid,NULL,CLSCTX_SERVER,
IID_ICUIExternal6,(void **)&pExt);
if (FAILED(hr))
{
return;
}
}
SDK中只提供了两个头文件,一个.c文件,谁能解决?
void main()
{
CoInitialize(NULL);
ICUIExternal6 * pExt = NULL;
CLSID clsid;
CLSIDFromProgID(L"IgfxExt.CUIExternal", &clsid); HRESULT hr = CoCreateInstance(clsid,NULL,CLSCTX_SERVER,
IID_ICUIExternal6,(void **)&pExt);
if (FAILED(hr))
{
return;
}
}
SDK中只提供了两个头文件,一个.c文件,谁能解决?
错误如下:
1>CRTDlg.obj : error LNK2001: unresolved external symbol _IID_ICUIExternal6
1>E:\Projectx\CRT\Debug\CRT.exe : fatal error LNK1120: 1 unresolved externals
======================
没有.lib提供给我,就是这样才麻烦啊
多谢回复!
没有的话,向厂商说。
2、你没有把定义的文件加入工程
-----------------
注册了,已经注册成功头文件里应该有IID_ICUIExternal6的定义。
没有的话,向厂商说。
------------------------------------
头文件里面是有定义,厂商是Intel, 开发包肯定没问题,他们都给别人用好多次的
再说给他们寄一个mail,要好几天才回复,来不及了1、缺少lib文件
2、你没有把定义的文件加入工程
--------------------------------------------------------------------
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1653899&SiteID=1
我在上面这个网站看到一个人说到要把<appropriatefilename>_i.c 加到Link中去, 我的开发包是有一个IgfxExt_i.c文件,但不直到怎么加进去,我用的是vc2005,麻烦知情人告之。
感谢回复
2.注册这个com
3.然后添加引用里面有个com,找到你的那个com文件这样就可以把那个头文件包含进来了。祝你好运
把这个.c文件拷贝到你的工作目录,然后选择添加现有项,找到这个文件,添加。
我把它加进去了,不过有一个编译错误,MIDL_DEFINE_GUID重定义错误
然后我就不知道怎么办了
多谢可不可以说的详细点?
下面这句话是什么意思?引用在什么地方?
3.然后添加引用里面有个com,找到你的那个com文件这样就可以把那个头文件包含进来了。
多谢
开发包是以COM形式提供的不是(h + lib + dll)形式的
即使是这种形式的如果有定义,但没有.lib还是会出现错误(LNK2001)
现在什么东西都有,只是我不会把它们都添加到工程中而已。
我将下面这句话添加进去
#import "IgfxExt_i.c"
得到错误:
1>e:\projectx\crt\crtdlg.h(8) : fatal error C1083: Cannot open type library file: 'e:\projectx\crt\igfxext_i.c': Error loading type library/DLL.如果添加#import "IgfxExt.idl"
提示找不到文件或目录
给你个#import ado 的例子
#import "c:\Program Files\Common Files\System\ADO\msado15.dll" \
no_namespace rename("EOF", "EndOfFile")
我把工程打成包,谁帮我编译下试试?
要的发下mail
不知道这个选项是做什么用的
反正通过了
散分,结贴