用VS2005编译了一个C++的DLL,有点有关问题,请帮帮小弟我,多谢。

用VS2005编译了一个C++的DLL,有点问题,请各位大哥帮帮我,谢谢。。。。。。。。。。。。。。。。。。。。。。。。。
我用VS2005编译了一个C++的DLL,类型是“带静态链接MFC的规则DLL”,现在想看看外部传进来的字符串参数是否正确,该用什么语句呢?
DLL中的导出函数:
extern "C" __declspec( dllexport ) void Dcm2Bmp(char *pFileName)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());

  AfxMessageBox(pFileName);

CDcmBmp m_DcmBmp;
strcpy(m_DcmBmp.m_strFileName, buf);
m_DcmBmp.ConvertDicomToBMP();
}
如上所示,我试着用AfxMessageBox(pFileName);查看传进来的字符串是否正确,但项目调用时,根本弹不出显示pFileName所指字符串的对话框,编译可以通过,但运行时出一个错误提示,还没看清,程序就自动终止了,就啥也没有了,怎么回事呢?但在另一个地方有段代码:
fp = fopen(pszFileName, "rb");
  if (!fp)
  {
  AfxMessageBox(_T("Failed to open file for read."));
  return;
  }
这段代码就可以输出字符串"Failed to open file for read.",也正是因为老是打不开文件,所以我想看看传进来的路径字符串到底是什么(因为我怀疑传进来的字符串不对),因为若把上面的程序改成:
fp = fopen(“"\\My Documents\\ct1.dcm"”, "rb");
  if (!fp)
  {
  AfxMessageBox(_T("Failed to open file for read."));
  return;
  }
就可以打开文件,一切都顺利,但就是从外部传进来相同的路径字符串,就是打不开,老跳出对话框“Failed to open file for read.”,所以我想看看传进来的路径字符串到底变成了什么,用开头我说的那个AfxMessageBox(pFileName);不行?那我要怎么办呢?望大家不吝赐教,谢谢啦!!!!!


------解决方案--------------------
你自己用C++先写个程序,测试一下是不是这个DLL的问题

如果不是的话,那就应该是C#代码的问题了
------解决方案--------------------
把c sharp和dll两个工程放在一个解决方案里面就可以调试了。
更进一步,你可以在依赖关系中,加入c sharp工程依赖dll工程。

好像不用添加引用吧。我调试想来都是放在一个工程里面调。
------解决方案--------------------
在你DLL那个工程里 
Project->setting->Debug中

Executable for debug session:

右边的箭头,把工程连接到C#那个工程中调用的那个DLL

调试就ok了
------解决方案--------------------
C/C++ code

extern   "C"   __declspec(   dllexport   )   void   Dcm2Bmp(char   *pFileName) 
{ 
AFX_MANAGE_STATE(AfxGetStaticModuleState()); 

    CString szStr;
    szStr = pFileName;
    AfxMessageBox(szStr);

CDcmBmp   m_DcmBmp; 
strcpy(m_DcmBmp.m_strFileName,   buf); 
m_DcmBmp.ConvertDicomToBMP(); 
}