链接错误。CLSID_Application和IID_IPOutlookApp。

beiguoyouzi 2009-06-17 12:07:55
#include "stdafx.h"
#include "Contact.h"
#include "resourceppc.h"
#define INITGUID
#include <pimstore.h>
#pragma comment(lib,"pimstore.lib")

#define RELEASE_STRING(s) if (s){SysFreeString(s);}
#define RELEASE_IO(s) if (s){s->Release();s=NULL;}


HINSTANCE g_hInst;


LRESULT CALLBACK ContactDlgProc(HWND, UINT, WPARAM, LPARAM);
void ButtonWrite();


int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
g_hInst=hInstance;
DialogBox(g_hInst,MAKEINTRESOURCE(IDD_DIALOG_CONTACT),NULL,(DLGPROC)ContactDlgProc);
return 1;
}

LRESULT CALLBACK ContactDlgProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
PAINTSTRUCT ps;
HDC hdc;

static SHACTIVATEINFO s_sai;

switch (message)
{
case WM_INITDIALOG:
{
SetWindowText(hWnd,L"Contact");

SHINITDLGINFO shidi={0};
shidi.dwMask=SHIDIM_FLAGS;
shidi.dwFlags=SHIDIF_SIZEDLGFULLSCREEN|SHIDIF_CANCELBUTTON;
shidi.hDlg=hWnd;
if (!SHInitDialog(&shidi)) return FALSE;
}
break;
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);

switch (wmId)
{
case IDC_BUTTON_OK:
ButtonWrite();
break;
case IDOK:
case IDCANCEL:
case IDM_OK:
SendMessage (hWnd, WM_CLOSE, 0, 0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);

// TODO: 在此添加任意绘图代码...

EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;

case WM_SETTINGCHANGE:
SHHandleWMSettingChange(hWnd, wParam, lParam, &s_sai);
break;

default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}

void ButtonWrite()
{
IContact *pContact=NULL;
BSTR bstrBirthday=NULL;
BSTR bstrFirstName=NULL;
BSTR bstrMiddleName=NULL;
BSTR bstrLastName=NULL;

IPOutlookApp * m_polApp;
if (SUCCEEDED(CoInitializeEx( NULL, 0)))
{
if(SUCCEEDED(CoCreateInstance(CLSID_Application,NULL, CLSCTX_INPROC_SERVER,
IID_IPOutlookApp, reinterpret_cast<void **>(&m_polApp))))
{
if(FAILED(m_polApp->Logon(NULL)))
{
MessageBox(NULL,_T("错误"),_T("error!"),MB_OK);
}
}
}

IFolder *m_pFolder;
IPOutlookItemCollection *m_pItems;
m_polApp->GetDefaultFolder(olFolderContacts, &m_pFolder);
m_pFolder->get_Items(&m_pItems);
m_pItems->Add((IDispatch **)&pContact);



wcscpy(bstrFirstName,L"a");
wcscpy(bstrMiddleName,L"b");
wcscpy(bstrLastName,L"c");

pContact->put_FirstName(bstrFirstName);
pContact->put_MiddleName(bstrMiddleName);
pContact->put_LastName(bstrLastName);

pContact->Save();

RELEASE_STRING(bstrBirthday);RELEASE_STRING(bstrFirstName);
RELEASE_STRING(bstrMiddleName);RELEASE_STRING(bstrLastName);
RELEASE_IO(pContact);

if (m_polApp)
{
m_polApp->Logoff();
m_polApp->Release();
}

CoUninitialize(); //释放COM

}


连接错误:
error LNK2001: 无法解析的外部符号 CLSID_Application
error LNK2001: 无法解析的外部符号 IID_IPOutlookApp

这是什么原因?
...全文
148 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
czbever 2009-06-19
  • 打赏
  • 举报
回复
是头文件加的顺序的问题
beiguoyouzi 2009-06-19
  • 打赏
  • 举报
回复
能编译通过,但运行后出现错误,而且数据也没写进去。
beiguoyouzi 2009-06-19
  • 打赏
  • 举报
回复
你能帮我写一个正确的头文件顺序吗?

[Quote=引用 9 楼 czbever 的回复:]
是头文件加的顺序的问题
[/Quote]
orangeman1982112 2009-06-18
  • 打赏
  • 举报
回复
#include "stdafx.h"
#include "Contact.h"
#include "resourceppc.h"
#define INITGUID
#include <objbase.h>
#include <initguid.h>
#include <pimstore.h>

#pragma comment(lib,"pimstore.lib")

楼主,改成这样,你看看有没有问题。
xmanlin 2009-06-18
  • 打赏
  • 举报
回复
可能和你包含的lib库有关
beiguoyouzi 2009-06-18
  • 打赏
  • 举报
回复
自己顶。
orangeman1982112 2009-06-17
  • 打赏
  • 举报
回复
加#include <initguid.h>就可以了。
beiguoyouzi 2009-06-17
  • 打赏
  • 举报
回复
#include "stdafx.h"
#include "Contact.h"
#include "resourceppc.h"
#define INITGUID
#include <pimstore.h>
#include <objbase.h>
#include <initguid.h>
#pragma comment(lib,"pimstore.lib")


也加进去了,还是一样的。
cytlyy 2009-06-17
  • 打赏
  • 举报
回复
在#include<initguid.h>之前加上#include <objbase.h>
beiguoyouzi 2009-06-17
  • 打赏
  • 举报
回复
还是不行,一样的错误。

7,655

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧