描述:
我最近刚开始接触com,不知用ATL做一个com时如何使用cstring类型?
在加入头文件是产生冲突,请问该如何解决?
还有Afx message box全局变量该如何使用?
请各位帮忙,小妹我感激不尽!!!
解决方案1:
用ATL生成的工程也可以加入MFC的
这在生成ATL工程时可以在向导中设置(其中有个问你是否包含MFC的复选筐打个钩就行了)
如果你已经生成工程而没有加入MFC支持的话,也可以手动去加。
至于怎么加,只要另外生成一个加入MFC的工程,比较一下两者的stdafx.h文件就行
另外编译器选项中的share mfc as a dynamic...什么的要选上
这样MFC中的类就都可以在一个ATL的工程中使用了。
不过在ATL工程中加入MFC,意味着这个工程的 所谓瘦代码的特性就没有了
所以一般可以使用BSTR,如果嫌它不方便,可以用CCombstr
AfxMessageBox 是 MFC 里的吧,在没有 MFC 的情况下就用 MessageBox 定义如下:
int MessageBox(
HWND hWnd, // handle to owner window
LPCTSTR lpText, // text in message box
LPCTSTR lpCaption, // message box title
UINT uType // message box style
);
例如:MessageBox(NULL, TEXT ("How do you do"), TEXT ("title"), 0);
防头文件冲突就用宏应该差不多了,例如:
#ifndef IMATH_H
#define IMATH_H
#include "imath.h"
#endif
您可能想查找下面的文章:
- 急求:要在ATL做的dll控件中使用AfxGetInstanceHandle和CString类型需要include什么包头?
- CArray//函数Add参数类型是ARG_TYPE,传进去cstring类型的变量怎么转化?
- 我把控件中的数据用format()函数转化成CString类型的数据0x01,可是我要怎么把它赋给byte类型的变量呢
- 关于在线程中传递CString类型变量的问题
- 在dll里不能定义CString类型吗?还有我想在dll定义一个结构在调用这结构要注意什么。。。。。
- [菜鸟问题]Cstring类型在dll项目编译中为什么提示undeclareidentifier?
- 在VC中的写了个dll,返回一个字符串CString类型,C#中如何使用?
- 跨进程消息的传递,用到了一个WM_COPYDATA的函数但是CString类型就传了个空内容过去???
- CString类型的时间,如何取到年月日?
- 请问在做com是怎样使用cstring类型?