symbian UIQ (CContactDatabase) 操作数据库问题
我在网上看了很多教程都说直接// Open the default contacts database:
CContactDatabase* contactsDb = CContactDatabase::OpenL();
CleanupStack::PushL(contactsDb);
..........
我也包含了ctndb.h这个头文件
为什么我在cpp文件中用 CContactDatabase* contactsDb = CContactDatabase::OpenL(); 会出现如下错误
STREAMS.obj : error LNK2001: unresolved external symbol "public: static class CContactDatabase * __cdecl CContactDatabase::OpenL(enum CContactDatabase::TThreadAccess)" (?OpenL@CContactDatabase@@SAPAV1@W4TThreadAccess@1@@Z)
根本就不能这样子直接用啊
请各位大哥指点下啊~困扰我几天几夜了~小弟弟感激不尽!
--------------------编程问答-------------------- 对了~说明一下我的SDK是在索爱下载的 uiq2.1 sdk 我是在vc平台下编写的! --------------------编程问答-------------------- 对了~说明一下我的SDK是在索爱下载的 uiq2.1 sdk 我是在vc平台下编写的! --------------------编程问答-------------------- 在mmp文件加上
LIBARAY cntmodel.lib --------------------编程问答-------------------- 上面的大哥~我加了的啊还是不行的
在cntdb.h头文件里是这样对openL定议的
.
.
.
enum TThreadAccess {ESingleThread,EMultiThread};
enum TSortDataSource
{
ENoOrder,
EUsesIdentityTableOnly,
EUsesAllTables
};
public:
IMPORT_C static CContactDatabase* OpenL(TThreadAccess aAccess=ESingleThread);
IMPORT_C static CContactDatabase* OpenL(const TDesC& aFileName,TThreadAccess aAccess=ESingleThread);
.
.
.
.
我在streams.cpp里是这样访问那个成员函数openL的
// streams.cpp
//
// Copyright (c) 2000 Symbian Ltd. All rights reserved.
//
#include "streams.h"
#include <eikenv.h>
#include <eikon.rsg>
#include <eikdialg.h>
#include <eikedwin.h>
#include <e32def.h >
#include <s32file.h>
#include <cntdef.h>
#include <cntitem.h>
#include <cntfldst.h>
#include <cntdb.h>
#include<d32dbms.h>
#include<f32file.h >
#include<s32file.h>
#include <e32base.h>
#include <cntdbobs.h>
#include <cntsync.h>
#include <badesca.h>
#include <versit.h>
#include <collate.h>
CContactDatabase* dfg=CContactDatabase::OpenL();
...............................
这样访问它就一定会报如下错误
--------------------Configuration: STREAMS - Win32 Uni Debug--------------------
Compiling...
Streams.cpp
Doing first-stage link by name
link.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\nma04072.
Creating library \Symbian\UIQ_21\EPOC32\BUILD\SYMBIAN\UIQ_21\UIQEXAMPLES\PAPERS\PEP\STREAMS\STREAMS\WINS\UDEB\STREAMS.lib and object \Symbian\UIQ_21\EPOC32\BUILD\SYMBIAN\UIQ_21\UIQEXAMPLES\PAPERS\PEP\STREAMS\STREAMS\WINS\UDEB\STREAMS.exp
STREAMS.obj : error LNK2001: unresolved external symbol "public: static class CContactDatabase * __cdecl CContactDatabase::OpenL(enum CContactDatabase::TThreadAccess)" (?OpenL@CContactDatabase@@SAPAV1@W4TThreadAccess@1@@Z)
\Symbian\UIQ_21\EPOC32\BUILD\SYMBIAN\UIQ_21\UIQEXAMPLES\PAPERS\PEP\STREAMS\STREAMS\WINS\UDEB\STREAMS.APP : fatal error LNK1120: 1 unresolved externals
NMAKE : fatal error U1077: 'link.exe' : return code '0x460'
Stop.
if exist "\Symbian\UIQ_21\EPOC32\BUILD\SYMBIAN\UIQ_21\UIQEXAMPLES\PAPERS\PEP\STREAMS\STREAMS\WINS\UDEB\STREAMS.exp" del "\Symbian\UIQ_21\EPOC32\BUILD\SYMBIAN\UIQ_21\UIQEXAMPLES\PAPERS\PEP\STREAMS\STREAMS\WINS\UDEB\STREAMS.exp"
Stopped the build by removing the export object,
if present, because the pre-link stage failed
Linking...
LINK : fatal error LNK1104: cannot open file "\Symbian\UIQ_21\EPOC32\BUILD\SYMBIAN\UIQ_21\UIQEXAMPLES\PAPERS\PEP\STREAMS\STREAMS\WINS\UDEB\STREAMS.exp"
Error executing link.exe.
STREAMS.APP - 4 error(s), 0 warning(s)
根据那个成员函数的定议这样子访问是不是错误的啊~
大哥们帮帮我把~这几天为这一个问题苦恼~郁闷死我了
最后再说明一点 我是在索爱下载的UIQ2.1的sdk 在VC环境下编译
--------------------编程问答-------------------- 确认使用命令行编译是否有问题。 --------------------编程问答-------------------- 在UIQ SDK下有个EXAMPLE叫streams(C:\Symbian\UIQ_21\UIQExamples\papers\pep\streams),我是先在命令行中编绎好了streams后(生成了streams.dsw工程文件)再加那些东西进去的啊
直接在streams.cpp里 加了头文件
#include <cntdb.h>
加了库文件
在mmp文件加上了
LIBARAY cntmodel.lib
然后我就直接在VC环境下编译了啊,没有再用命令行再去编译什么了
--------------------编程问答-------------------- 接分先! --------------------编程问答-------------------- 我跟楼主的情况一样,现在也是很郁闷呀。求大虾出山指点……
补充:移动开发 , Symbian