我想封装一个DLL,在其它工具中调用,结果总是取不到值请各位大虾帮忙指正用AfxMessageBox查时有值,可是返回来时就是没有,其它地方编码都没有问题,并且当作整个函数的返回值时也没有问题,只是偶不懂利用函数的参数返回值时应注意那些东东!extern "C" BOOL WINAPI COLORS(UINT ll_color)
{
DWORD m_colors;
CString c_colors;
CColorDialog dlg;
if(IDOK==dlg.DoModal())
{
  m_colors = dlg.GetColor();
  c_colors.Format("%d", m_colors);
  ll_color = atoi((LPSTR)(LPCTSTR)c_colors);
  AfxMessageBox(c_colors);
  return TRUE;
}
else
{
  return FALSE;
}}

解决方案 »

  1.   

    BOOL WINAPI COLORS(UINT& ll_color)
    {
    ...
    }
      

  2.   

    extern "C" BOOL WINAPI COLORS(UINT& ll_color)
    {
    DWORD m_colors;
    CString c_colors;
    CColorDialog dlg;
    if(IDOK==dlg.DoModal())
    {
      m_colors = dlg.GetColor();
      c_colors.Format("%d", m_colors);
      *ll_color = atoi((LPSTR)(LPCTSTR)c_colors);    //修改这里
      AfxMessageBox(*c_colors);                      //修改这里
      return TRUE;
    }
    else
    {
      return FALSE;
    }}调用
    vc:
    UNIT color;
    COLORS(&color);vb:
    dim color as integer
    COLORS(color)