互不引用的两个cpp怎么调用函数的?

菠菜COM 2015-10-13 10:39:58
菜鸟发问:
最近在研究一个工程,是inter的realsense的一个程序
头文件包含一下几个:
resource1.h
resource.h
源文件有:
main.cpp
handsviewer.cpp


它是在main.cpp里代码绘制了窗口
而且在
static DWORD WINAPI ThreadProc(LPVOID arg) {
void SimplePipeline(HWND hwndDlg);
SimplePipeline((HWND)arg);
PostMessage((HWND)arg,WM_COMMAND,ID_STOP,0);
g_running=false;
CloseHandle(m_thread);
return 0;
}
里调用了handsviewer.cpp里的一个函数SimplePipeline(里面是开启了一个核心功能)
但是我却没有发现main.cpp里有引用过handviewer这个类呀.并且我搜索了下只有这个地方用了这个函数。


以往我见过的都是cpp会有一个对应的.h文件,在里面引用想使用的类
但是这个既没有include也没有见到这个方法extern,请问它是怎么调用成功的?
...全文
226 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
菠菜COM 2015-10-13
  • 打赏
  • 举报
回复
引用 3 楼 iyomumx 的回复:
[quote=引用 2 楼 xyb0225 的回复:]
[quote=引用 1 楼 iyomumx 的回复:]
static DWORD WINAPI ThreadProc(LPVOID arg) {
void SimplePipeline(HWND hwndDlg); //<----声明
SimplePipeline((HWND)arg); //<-----调用

声明和定义对上了就没问题,另一个编译单元的函数只要不是内部链接的就能链接成功


我之前没搞过多线程的
是因为这个线程的函数的原因它才调用成功的吗?[/quote]
和多线程无关,这是在编译链接时编译器/链接器就处理好了。
简单来说,那个声明就相当于include了一个头文件,只不过作用域只在函数内。[/quote]
哦哦哦,十分感谢。我在函数外申明的话也能用么
iyomumx 2015-10-13
  • 打赏
  • 举报
回复
引用 2 楼 xyb0225 的回复:
[quote=引用 1 楼 iyomumx 的回复:]
static DWORD WINAPI ThreadProc(LPVOID arg) {
void SimplePipeline(HWND hwndDlg); //<----声明
SimplePipeline((HWND)arg); //<-----调用

声明和定义对上了就没问题,另一个编译单元的函数只要不是内部链接的就能链接成功


我之前没搞过多线程的
是因为这个线程的函数的原因它才调用成功的吗?[/quote]
和多线程无关,这是在编译链接时编译器/链接器就处理好了。
简单来说,那个声明就相当于include了一个头文件,只不过作用域只在函数内。
菠菜COM 2015-10-13
  • 打赏
  • 举报
回复
引用 1 楼 iyomumx 的回复:
static DWORD WINAPI ThreadProc(LPVOID arg) {
void SimplePipeline(HWND hwndDlg); //<----声明
SimplePipeline((HWND)arg); //<-----调用

声明和定义对上了就没问题,另一个编译单元的函数只要不是内部链接的就能链接成功


我之前没搞过多线程的
是因为这个线程的函数的原因它才调用成功的吗?
iyomumx 2015-10-13
  • 打赏
  • 举报
回复
static DWORD WINAPI ThreadProc(LPVOID arg) {
void SimplePipeline(HWND hwndDlg); //<----声明
SimplePipeline((HWND)arg); //<-----调用

声明和定义对上了就没问题,另一个编译单元的函数只要不是内部链接的就能链接成功

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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