日期:2014-05-20  浏览次数:20965 次

cli问题,指针的指针,顺带散分了
cli::interior_ptr <System::Char>   ptr;
methodA(ptr);

void   methodA(cli::interior_ptr <System::Char>   parameter)
{
        ++parameter;
}

由于传值的缘故
methodA方法递增parameter以后ptr是不会有变化的
我想把参数改为指针的指针
请教一下该怎么写


------解决方案--------------------
幫頂﹗
------解决方案--------------------
用引用试试
void methodA(cli::interior_ptr <System::Char> &parameter)
{
++parameter;
}
------解决方案--------------------
为什么一定要在C#里用指针呢?不能换个思路吗,要不就去用c++?
------解决方案--------------------
cli::interior_ptr <System::Char> ptr;
methodA(&ptr);

void methodA(cli::interior_ptr <System::Char> **parameter)
{
++parameter;
}

对VC++.net 2005不熟,可以试试!
------解决方案--------------------
使用unsafe模式
------解决方案--------------------
关注...

学习...
------解决方案--------------------
学习~~
------解决方案--------------------
谢谢接分
------解决方案--------------------
继续关注
------解决方案--------------------
不懂,帮顶吧
------解决方案--------------------
jf
------解决方案--------------------
帮顶
------解决方案--------------------
关注,学习,顶
------解决方案--------------------
关注
------解决方案--------------------
关注,学习,顶,希望快些解决.
------解决方案--------------------

------解决方案--------------------
LZ太强了吧!一个字,接
------解决方案--------------------
System::Char 不是引用
直接

void methodA( System::Char& c )
{
c++;
}

System::Char p = 'a ';
methodA( p);
return 0;

------解决方案--------------------
cli 的字符串和c++原生字符串不能一一对应
c++ 的字符串是指向一个字符数组的,cli 字符串是一个类,
不能直接使用c++原来的方式

------解决方案--------------------
你是什么string?

System::String
or
std::string
???

如果是前者可以用
Marshal::StringToStringToHGlobalAuto(string s);
转为c++原生字符串
再按c++标准方式处理

------解决方案--------------------
过年啦,接点分长进长进