关于 c 和 c++ 的混合编程问题

rhettxie 2005-03-20 12:34:42
我现在要做c 和 c++ 的混合编程,就是在一个mfc的对话框程序中调用一些c 实现的函数,例如:一个c定义的函数 DWORD WINAPI Accptconnect(PVOID hsock);

这个函数该怎么在我的mfc程序中定义和实现。

我编译时没问题,但是连接时出了这个问题:fgDlg.obj : error LNK2001: unresolved external symbol "unsigned long __stdcall Accptconnect(void *)" (?Accptconnect@@YGKPAX@Z)
有人说要使用extern “C”,可是我不知道这个修改符怎么用啊?
请给小弟讲讲,最好给出示例代码,谢谢

...全文
130 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
rhettxie 2005-03-20
  • 打赏
  • 举报
回复
我直接在一个.cpp文件中写是DWORD WINAPI Accptconnect(PVOID)

然后还在这个.cpp文件中使用了,没有出问题;

晕了,理论上WINAPI 的函数就可以直接在c++里用的,可是前面那个连接错误是怎么出的??

现在谁给说说那个extern “C”的用法?
42252343 2005-03-20
  • 打赏
  • 举报
回复
我写程序也喜欢C和C++混合用从来没出问题啊
把你代码发给我或者贴上来看看 host_net@tom.com
surstar 2005-03-20
  • 打赏
  • 举报
回复
关注~
rhettxie 2005-03-20
  • 打赏
  • 举报
回复
没有,我不用库;
我有c 的代码,我现在要把那些代码容到我的mfc程序中
吹泡泡的小猫 2005-03-20
  • 打赏
  • 举报
回复
Accptconnect这个函数是有源代码还是只有dll?
fibbery 2005-03-20
  • 打赏
  • 举报
回复
你有没有用到静态链接库?
mousefj 2005-03-20
  • 打赏
  • 举报
回复
类似于#pragma once
tudou614 2005-03-20
  • 打赏
  • 举报
回复
TO:
回复人: rhettxie(飘)

#ifndef _INC_MYFUN
#define _INC_MYFUN



#endif//!_INC_MYFUN

这个有什么用 ???

----------------------
防止头文件被多次编译
csdnlady 2005-03-20
  • 打赏
  • 举报
回复
extern “C”:的用法:
extern "C" 函数原型;
或把所有在C++中用到的C函数的原型放在一个头文件中(如#include "inc.h"),然后用
extern "C"{include "inc.h"};
fibbery 2005-03-20
  • 打赏
  • 举报
回复
链接时找不到函数,应该是include有问题
KeNan_Net 2005-03-20
  • 打赏
  • 举报
回复
如果_INC_MYFUN 不存在, 就定义,
#define _INC_MYFUN DWORD WINAPI Accptconnect(PVOID hsock);
rhettxie 2005-03-20
  • 打赏
  • 举报
回复
#ifndef _INC_MYFUN
#define _INC_MYFUN



#endif//!_INC_MYFUN

这个有什么用 ???
oyljerry 2005-03-20
  • 打赏
  • 举报
回复
extern “C”多用在dll等中,表示导出函数时是以C语言的方式来调用调用
mousefj 2005-03-20
  • 打赏
  • 举报
回复
自定义的函数可以单独定义,常用的方式,为了维护方便结构如下所示。这样肯定没问题。
添加两个文件MyFun.h和MyFun.cpp

MyFunc.h文件

#ifndef _INC_MYFUN
#define _INC_MYFUN

DWORD WINAPI Accptconnect(PVOID hsock);

#endif//!_INC_MYFU

MyFunc.cpp文件
DWORD WINAPI Accptconnect(PVOID hsock)
{
DWORD xx;
//函数实现代码
return xx;
}

调用到Accptconnect函数的文件添加
#include "MyFun.h"
42252343 2005-03-20
  • 打赏
  • 举报
回复
extern “C”表示函数是以C语言的方式调用
rhettxie 2005-03-20
  • 打赏
  • 举报
回复
然后还是在那个.cpp文件中调用Accptconnect函数,没有出问题;

现在谁给说说那个extern “C” 的用法??

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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