c# - c#中的EnvDTE:如何向生成的c++函数添加参数?
问题描述
我正在尝试生成一个带参数的函数。添加函数头和主体工作正常,但是当我尝试添加参数时,我得到一个我无法解决的异常。
func.AddParameter("num", "int");
我得到了例外:
未能返回新的代码元素。可能是语法错误。新元素名称:num
这就是我生成函数头和函数体的方式:
VCCodeFunction func = (VCCodeFunction)(((VCFileCodeModel)(file.FileCodeModel)).AddFunction("testfunc", vsCMFunction.vsCMFunctionFunction, "testClass2"));
func.BodyText = "for(int i=0; i < 5; ++i){}\n return 1;";
这会产生:
testClass2 testfunc()
{
for (int i = 0; i < 5; i++) {}
return 1;
}
作为一个临时解决方案,我通过手动添加参数来解决这个问题
var tp = func.GetStartPoint(vsCMPart.vsCMPartBodyWithDelimiter);
var ep = tp.CreateEditPoint();
ep.CharLeft();
ep.Insert("int num");
但我觉得这是不好的做法。我究竟做错了什么?
解决方案
推荐阅读
- oracle - 使用命令将存储过程查询从 sql 文件导入 Oracle DB
- java - 在插入变量之前从资源中获取字符串长度
- amazon-web-services - Ansible + cloudformation 删除所有 Stack 级标签
- python - 将 API 中的多个 JSON 附加到单个 JSON 文件中
- python - 在 python 中使用 OS.Walk() 计算子文件夹
- javascript - JS 在表单允许提交之前输入正确的短语
- node.js - 使用 Node.js 和 Express 的在线编译器
- scala - Gatling Scala 日期随机格式不正确
- c# - Visual Studio 中未抛出预期异常,Linq Select 语句意外过滤结果
- c# - 如何将 4 个参数从后面的代码传递给客户端