index136.htm

来自「介绍了L C &ouml O S 2&Ecirc 在TM S320VC5402 」· HTM 代码 · 共 43 行

HTM
43
字号
<html>
<style type="text/css"><!--
.p9 {  font-family: "宋体"; font-size: 9pt}a        {text-transform: none; text-decoration: none;}
a:hover {text-decoration: underline; color: #FF0000;}
--></style>
<body background="../di2001.jpg">
<h3 align="center"><font COLOR="#AOAO99"></font></h3>
<table width="100%" border="1" cellspacing="1">
<tr><td><p align="center"><font color="#FF0000">DLL中的模板成员函数?</font></td></tr>
<tr><td><p>
</Br>
在一个DLL中,我在自己创建的类中使用了模板成员函数来代替预处理宏.但出现以下错误:<Br>
</Br>
&nbsp;&nbsp;error C2664: 'double Data::extract(double &)' : cannot convert parameter 1<Br>
&nbsp;&nbsp;from 'class CArray' to 'double &'<Br>
为什么在匹配模板定义时它要寻找一个DOUBLE参数?<Br>
</Br>
我觉得你可能是在表达成员函数(内联)时出现了问题,请参照下面的示例:<Br>
</Br>
&nbsp;&nbsp;&nbsp;class AFX_EXT_CLASS  Data : public CObject  //This is not a template<Br>
&nbsp;&nbsp;&nbsp;{<Br>
&nbsp;&nbsp;&nbsp;public:<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Data();<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Data(BYTE * buffer,int size);<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;template<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Data(const CArray& array);<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;template<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CArray& extract(CArray& array)<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CArchive ar(&buffer, CArchive::store);<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ar >> array;<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double extract(double&);<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(...)<Br>
&nbsp;&nbsp;&nbsp;private:<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CMemFile buffer;<Br>
&nbsp;&nbsp;&nbsp;}<Br>
</Br>
</Br>
</p></td></tr>
</table>
</body></html>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?