自己写了个com dll,调用如下:
::CoInitialize(NULL);
IRSAPort *pRSA=NULL;
HRESULT hr;hr= ::CoCreateInstance(CLSID_RSAPort,NULL,CLSCTX_INPROC_SERVER,IID_IRSAPort,(LPVOID *)&pRSA);BSTR *p;
BSTR k=_com_util::ConvertStringToBSTR("数据");///使用前需要加上comutil.h和comsupp.lib
p=&k;hr= pRSA->RSACode(k,3,p);if(pRSA) pRSA->Release();::CoUninitialize();编译正常,链接出现以下错误:
llDlg.obj : error LNK2001: unresolved external symbol _CLSID_RSAPort
llDlg.obj : error LNK2001: unresolved external symbol _IID_IRSAPort
Debug/ll.exe : fatal error LNK1120: 2 unresolved externals

解决方案 »

  1.   

    error LNK2001: unresolved external symbol _CLSID_RSAPort
    CLSID_RSAPort没定义啊
    加上const CLSID CLSID_RSAPort={具体的uuid}
      

  2.   

    能给出具体的附值方法吗?下面是.h里面的定义内容
    EXTERN_C const IID LIBID_RSALib;EXTERN_C const CLSID CLSID_RSAPort;
    #ifdef __cplusplus
    class DECLSPEC_UUID("C3D3B5FE-BD05-4E8B-A976-97D4C753DDBA")
    RSAPort;
    #endif
    #endif /* __RSALib_LIBRARY_DEFINED__ */我写了下面的代码,结果有问题:
    const CLSID CLSID_RSAPort={"C3D3B5FE-BD05-4E8B-A976-97D4C753DDBA"};
    ======================================================================
    下面是关于IID_IRSAPort在.h中的定义,要怎么附值使用呢?
    EXTERN_C const IID IID_IRSAPort;#if defined(__cplusplus) && !defined(CINTERFACE)
        
        MIDL_INTERFACE("7994215A-9A38-4890-A6C1-7C9DDAA9A3CB")
        IRSAPort : public IDispatch
        {
        public:
            virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RSACode( 
                /* [in] */ BSTR strIn,
                /* [in] */ int op,
                /* [retval][out] */ BSTR __RPC_FAR *strOut) = 0;
            
        };
      

  3.   

    const CLSID CLSID_RSAPort = {0x88d969c0,0xf192,0x11d4,{0xa6,0x5f,0x00,0x40,0x96,0x32,0x51,0xe5}};//里面具体的用你的guid代替
    ::CoInitialize(NULL);
    IRSAPort *pRSA=NULL;
    HRESULT hr;hr= ::CoCreateInstance(CLSID_RSAPort,NULL,CLSCTX_INPROC_SERVER,IID_IRSAPort,(LPVOID *)&pRSA);