VC与C如何混编,我有个纯C命令行程序,我要把它的输出改到VC的OnDraw.遇到好多链接错误,请高手指点!
1。我在C中写mfc的语句,提示没有定义,加入头文件,出现VC类库里的错误,
c:\program files\microsoft visual studio\vc98\mfc\include\afx.h(15) : fatal error C1189: #error : MFC requires C++ compilation (use a .cpp suffix)#ifndef __cplusplus
#error MFC requires C++ compilation (use a .cpp suffix)
#endif
看来这条路不通。
2。我用一个新写一个文件,新函数,在view类和命令行加入头文件,链接错误,没找到函数体.
3。我用这个文件,建立int,char * ,char gol[20].到在view类和命令行加入extern 他们。
结果还是error LNK2001: unresolved external symbol 。
VC与C如何混编? 用VC调用C 是可用,反过来怎么做呢? 我没有思路,请问问大家,谢谢!
1。我在C中写mfc的语句,提示没有定义,加入头文件,出现VC类库里的错误,
c:\program files\microsoft visual studio\vc98\mfc\include\afx.h(15) : fatal error C1189: #error : MFC requires C++ compilation (use a .cpp suffix)#ifndef __cplusplus
#error MFC requires C++ compilation (use a .cpp suffix)
#endif
看来这条路不通。
2。我用一个新写一个文件,新函数,在view类和命令行加入头文件,链接错误,没找到函数体.
3。我用这个文件,建立int,char * ,char gol[20].到在view类和命令行加入extern 他们。
结果还是error LNK2001: unresolved external symbol 。
VC与C如何混编? 用VC调用C 是可用,反过来怎么做呢? 我没有思路,请问问大家,谢谢!
解决方案 »
- 完成端口,总是自动跳出程序,没有任何错误提示。
- VC6访问WebService,返回Soap:Server
- 怎样获得当前活动窗口的DC?
- 8位PCM格式中编码是哪种,我从pcm文件中读出的unsigned(0-255)的编码,不是A-law,怎么转换呢?
- 改变哪些地方会使主框的标题改变,我用pmainframe->setwindowtext,好象标题闪了一下可又变回去了
- 如何理解IE中的一些设置(cookie、ActiveX控件等)?
- 不好意思, 问个很菜的问题, 关于对话框的。
- 急急急!!各位大哥小妹请帮忙!
- .NET 一场风花雪月的梦想 大家来发表观点!
- SOS 高高手请进 SOS DCOM结构的系统的性能评估
- X = 1+ ~ X 什么意思呢?
- 新申请的马甲不能用,只有10分了,真的对不起~~关于上位机从下位机读数据的,就是端口通信问题!!谢谢
但C++要比C严格,所以,C中正确的语句,在C++中不一定正确。
我需要这两部分混编,其实文件是分开的,也许叫混链接。主要是两部分交互的问题。
用temp文件是肯定行。可是又慢又不灵活。
用函数,用全局变量,共用的buf,我想这样。
只要一个char *的串,一个bool stat 标志.就好。
求高手!
建个.cpp文件,把函数拷过来逻辑上改改就行
C->VC不通,
我想在一个工程里的东西如果是全局应该可以到处用。声明该怎么写,
在CPP里定义,在C里extern.
在C里定义,在CPP里extern.
用include "xx.h"的方法肯定不通。
c->VC方向怎么调啊?
我开了个缓冲区还有一个标识。VC里一个timer负责显示。c的函数写char *.
可是C的一运行就停不住,在c用while(stat==0)检测,结果连VC的timer 都没有反应。
我要这个功能在纯C里:调用VC的东西,函数最好,不然用变量,可是怎么停住C,如果VC做了标识要暂停。
extern "CPP" {
#include "head1.h"
#include "head2.h"
#include "head3.h"
}
大家没碰到这种情况过吗? 因为交互的地方多,而且要实时,真是很难。
2.所有输出直接使用GDI函数,不要用MFC.
3.基于第二条,必须要有窗体,可以在winMain中创建。
第一条很重要,因为如果是控制台程序,要求是main()
否则必须是WinMain()(还有一个是支持Unicode的名称,忘了).
导致error LNK2001: unresolved external symbol 的原因可能就在此。
CreateThread( NULL, 0, ChildProcess, NULL, 0, &threadID );
再用ChildProcess调用我原来的命令行入口main现在还行,
DWORD WINAPI ChildProcess( LPVOID lpParameter )
{
char * argv[3];
char s1[]="gmfc.exe";
char s2[]="--in";
char s3[]="c:\\exe\\aa1.dat";
argv[0]=s1;
argv[1]=s2;
argv[2]=s3;
int n=3; sprintf(gg,"%s","in menu");
hyi=0;main(n,argv);
HWND hWnd=AfxGetApp()->GetMainWnd()->GetSafeHwnd();
KillTimer(hWnd,1);
return 1;
}
不过用定时器监听真的很烦,指针有时有乱码。大家还有什么好办法?
VC->C可以调用。用extern "C"{ }
c->VC的方法?