|
-
linker error while calling a c function from VC++ application
Hello Jonathan,
I made a mistake, in fact, the libxml is housed in the LIB rather than
DLL.
Cheers!
Hai wang
"hai wang" <hwang@accuris.ie> wrote:
>
>Hello Jonathan,
> The libxml is housed in the DLL, I tried to call several other functions
>in the library, no one works, so I guess my library setting has some problems,
>but where?
>
>Thank you very much!
>Hai wang
>"Jonathan Morrison" <jonathanm@mindspring.com> wrote:
>>Hai,
>>The linker error you are getting means that the linker is looking for a
>>function written in C named xmlParseFile. The reason that the error message
>>says _xmlParseFile is because the compiler mangles the name of C functions
>>this way. Where is the libxml library housed (a DLL or LIB).
>>
>>-Jonathan
>>"hai wang" <hwang@accuris.ie> wrote in message
>>news:3a1436ca$1@news.devx.com...
>>>
>>> Hello everybody,
>>> Now I am working with a xml c libray called libxml, I have compiled
>>> the library by using VC++ 6, and then I wrote my own application which
>is
>>> calling the xml c library functions, I can compile the application without
>>> any error, but I couldn't create an executable file because a linker
error
>>> "error LNK2001: unresolved external symbol _xmlParseFile", I guess the
>>problem
>>> may result from VC++ settings which make VC++ co-work with c source code,
>>> but I don't know how to fix the problem, if any of you has the experience
>>> or solution, could you please reply me, I really appreciate it.
>>>
>>> Thank you very much!
>>>
>>> Hai Wang
>>>
>>>
>>> The source codes are given which caused the problem:
>>>
>>> char* filename = "Wang"; // substitute it with the file name
>>>
>>> FILE* f =fopen(filename, "w");
>>> f=fopen(filename, "w");
>>> int res, size = 1024;
>>> char chars[1024];
>>> res = fread(chars,1, 1024, f);
>>>
>>> SYSTEMTIME sysTime;
>>> COleDateTime timeNow = COleDateTime::GetCurrentTime();
>>>
>>>
>>> WORD W_starttime, W_endtime = 0;
>>>
>>> if(!timeNow.GetAsSystemTime(sysTime))
>>> {
>>> // cout << "time format conversion is failed " << endl;
>>> exit(1);
>>> }
>>>
>>> W_starttime = sysTime.wMilliseconds;
>>>
>>> xmlDocPtr xml_xmlDocPtr;
>>>
>>>
>>> for(int iterator1 = 0; iterator1 < 1000; iterator1++)
>>> {
>>> xml_xmlDocPtr = xmlParseMemory(chars, res); // attention! the
>>function
>>> call caused this problem
>>> }
>>
>>
>
-
Re: linker error while calling a c function from VC++ application
Hai,
Then all you need to do is be sure and add the lib file to the project. In
VC++ you Project->Add To Project->Files from the Project menu. Then you
should be good to go!
Thanks,
Jonathan
"hai wang" <hwang@accuris.ie> wrote:
>
>Hello Jonathan,
> I made a mistake, in fact, the libxml is housed in the LIB rather than
>DLL.
>Cheers!
>Hai wang
>"hai wang" <hwang@accuris.ie> wrote:
>>
>>Hello Jonathan,
>> The libxml is housed in the DLL, I tried to call several other functions
>>in the library, no one works, so I guess my library setting has some problems,
>>but where?
>>
>>Thank you very much!
>>Hai wang
>>"Jonathan Morrison" <jonathanm@mindspring.com> wrote:
>>>Hai,
>>>The linker error you are getting means that the linker is looking for
a
>>>function written in C named xmlParseFile. The reason that the error message
>>>says _xmlParseFile is because the compiler mangles the name of C functions
>>>this way. Where is the libxml library housed (a DLL or LIB).
>>>
>>>-Jonathan
>>>"hai wang" <hwang@accuris.ie> wrote in message
>>>news:3a1436ca$1@news.devx.com...
>>>>
>>>> Hello everybody,
>>>> Now I am working with a xml c libray called libxml, I have compiled
>>>> the library by using VC++ 6, and then I wrote my own application which
>>is
>>>> calling the xml c library functions, I can compile the application without
>>>> any error, but I couldn't create an executable file because a linker
>error
>>>> "error LNK2001: unresolved external symbol _xmlParseFile", I guess the
>>>problem
>>>> may result from VC++ settings which make VC++ co-work with c source
code,
>>>> but I don't know how to fix the problem, if any of you has the experience
>>>> or solution, could you please reply me, I really appreciate it.
>>>>
>>>> Thank you very much!
>>>>
>>>> Hai Wang
>>>>
>>>>
>>>> The source codes are given which caused the problem:
>>>>
>>>> char* filename = "Wang"; // substitute it with the file name
>>>>
>>>> FILE* f =fopen(filename, "w");
>>>> f=fopen(filename, "w");
>>>> int res, size = 1024;
>>>> char chars[1024];
>>>> res = fread(chars,1, 1024, f);
>>>>
>>>> SYSTEMTIME sysTime;
>>>> COleDateTime timeNow = COleDateTime::GetCurrentTime();
>>>>
>>>>
>>>> WORD W_starttime, W_endtime = 0;
>>>>
>>>> if(!timeNow.GetAsSystemTime(sysTime))
>>>> {
>>>> // cout << "time format conversion is failed " << endl;
>>>> exit(1);
>>>> }
>>>>
>>>> W_starttime = sysTime.wMilliseconds;
>>>>
>>>> xmlDocPtr xml_xmlDocPtr;
>>>>
>>>>
>>>> for(int iterator1 = 0; iterator1 < 1000; iterator1++)
>>>> {
>>>> xml_xmlDocPtr = xmlParseMemory(chars, res); // attention! the
>>>function
>>>> call caused this problem
>>>> }
>>>
>>>
>>
>
Similar Threads
-
By Patrick Troughton in forum .NET
Replies: 78
Last Post: 08-13-2002, 11:18 AM
-
By Tom in forum VB Classic
Replies: 0
Last Post: 08-05-2002, 08:21 AM
-
By Joar Vatnaland in forum Database
Replies: 1
Last Post: 06-11-2001, 02:07 AM
-
By hai wang in forum authorevents.morrison
Replies: 2
Last Post: 11-17-2000, 04:09 AM
-
By Dan in forum VB Classic
Replies: 0
Last Post: 03-17-2000, 05:14 AM
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
Forum Rules
|
Top DevX Stories
Easy Web Services with SQL Server 2005 HTTP Endpoints
JavaOne 2005: Java Platform Roadmap Focuses on Ease of Development, Sun Focuses on the "Free" in F.O.S.S.
Wed Yourself to UML with the Power of Associations
Microsoft to Add AJAX Capabilities to ASP.NET
IBM's Cloudscape Versus MySQL
|
Bookmarks