由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - #ifdef _MSC_VER 是什么意思啊?
相关主题
c warningUrgent question: AIX, C++11, Shared Object
怎样清理不要的C代码老哥使用的一项技术: extern定义全局变量
弱问一个ifdef 和ifndef"out of stack space" when constructing a _bstr_t object
makefile 里面那个-D flags的问题how can I convert CString to char*?
关于程序必须支持win and linux, 可不可以用class而不是#ifdef WIN32 ?what is the meaning of this macro in visual studio, thanks
问个两个.h文件互相include的问题VC++ does not support strlen()
关于C++中 extern "C"的问题。建议大家看看interlocked
how to apply OOD to a code for both win and linux platform ?Array in C
相关话题的讨论汇总
话题: chcur话题: strmsg话题: cstring话题: chstop话题: int
进入Programming版参与讨论
1 (共1页)
s********z
发帖数: 5411
1
我在把下面这段code改成qt,是不是需要删掉 “ifdef _MSC_VER”阿?
这里为什么要用”#ifdef _MSC_VER“ “#endif”阿? 只有是visual studio
compiler情
况下,这个code才能用?
多谢
xx.h
#ifdef _MSC_VER
int ReadString(CString& strMsg, char chStop);
int ReadString(CString& strMsg);
int WriteString(CString strCmd);
#endif
xx.cpp
#ifdef _MSC_VER
int CCamlinkSerial::ReadString(CString& strMsg, char chStop)
{
if (!m_bOpened) { return 0; }
char chCur = chStop + 1; // ensures that ucCur and ucStop are
different to begin with
strMsg = "";
int t = 0;
while ((chCur != chStop) && (t < m_nTimeout)) {
if (ReadCommChar(chCur)) {
if (chCur != chStop) { strMsg += chCur; }
} else {
break;
}
}
if (chCur != chStop) { return -1; }
return 1;
}
int CCamlinkSerial::ReadString(CString& strMsg)
{
if (!m_bOpened) { return 0; }
char chCur = '\0';
bool bValidRead = true;
strMsg = "";
int lTotal = 0;
while (bValidRead) {
if (ReadCommChar(chCur)) {
strMsg += chCur;
lTotal += 1;
} else {
bValidRead = false;
}
}
if (!bValidRead) { return -1; } // timeout
return lTotal;
}
int CCamlinkSerial::WriteString(CString strCmd)
{
int nLen = strCmd.GetLength();
int nBytes = WriteData((char*)(strCmd.GetBuffer(nLen)), nLen);
strCmd.ReleaseBuffer();
return nBytes;
}
#endif
d****p
发帖数: 685
2
CString is ATL stuff so it is only for MSVC platform.
If you want cross-platform code, change it to std::string

【在 s********z 的大作中提到】
: 我在把下面这段code改成qt,是不是需要删掉 “ifdef _MSC_VER”阿?
: 这里为什么要用”#ifdef _MSC_VER“ “#endif”阿? 只有是visual studio
: compiler情
: 况下,这个code才能用?
: 多谢
: xx.h
: #ifdef _MSC_VER
: int ReadString(CString& strMsg, char chStop);
: int ReadString(CString& strMsg);
: int WriteString(CString strCmd);

s********z
发帖数: 5411
3
i c.
thanks.
I will just change it to qstring, since I am using qt. thnaks.

【在 d****p 的大作中提到】
: CString is ATL stuff so it is only for MSVC platform.
: If you want cross-platform code, change it to std::string

1 (共1页)
进入Programming版参与讨论
相关主题
Array in C关于程序必须支持win and linux, 可不可以用class而不是#ifdef WIN32 ?
return Triangular_iterator( _beg_pos );意思问个两个.h文件互相include的问题
C ++ 问题关于C++中 extern "C"的问题。
A function can be history-sensitive??????how to apply OOD to a code for both win and linux platform ?
c warningUrgent question: AIX, C++11, Shared Object
怎样清理不要的C代码老哥使用的一项技术: extern定义全局变量
弱问一个ifdef 和ifndef"out of stack space" when constructing a _bstr_t object
makefile 里面那个-D flags的问题how can I convert CString to char*?
相关话题的讨论汇总
话题: chcur话题: strmsg话题: cstring话题: chstop话题: int