绑定自动化服务器二牛
吴锡铭因涉嫌职务侵占罪被逮捕 晚期绑定
与早期绑定不同,晚期绑定要等到运行时才会将属性和方法调用绑定到它们的对象。为此,目标对象必须实现一个特殊的 COM 接口:IDispatch。利用 IDispatch::GetIDsOfNames 方法,Visual C# 可以询问对象支持哪些方法和属性,然后,IDispatch::Invoke 方法允许 Visual C# 调用这些方法和属性。这种晚期绑定的优点是:它消除了早期绑定所固有的某些版本依赖性。然而,它也有以下缺点:省略了对自动化代码完整性的编译时检查,也不提供“智能感知”功能(该功能可提供有助于正确调用方法和属性的提示)。
要在 Visual C# 中使用晚期绑定,请使用 vokeMember 方法。此方法调用 IDispatch::GetIDsOfNames 和 IDispatch::Invoke 来绑定到自动化服务器的方法和属性。
创建使用晚期绑定的自动化客户端
启动 Microsoft Visual Studio .NET。在文件菜单上,单击新建,然后单击项目。从 Visual C# 项目类型中选择 Windows 应用程序。默认情况下会创建 Form1。
在视图菜单上,选择工具箱以显示工具箱,然后向 Form1 添加一个按钮。
双击 Button1。将出现该窗体的代码窗口。
在代码窗口中,将以下代码 private void button1_Click(object sender, entArgs e)
{
}
替换为:private void button1_Click(object sender, entArgs e)
{
object objApp_Late;
object objBook_Late;
object objBooks_Late;
object objSheets_Late;
object objSheet_Late;
object objRange_Late;
object[] Parameters;
try
{
// Instantiate Excel.
objApp_Late = (object)new plication();
//Get the workbooks collection.
objBooks_Late = objApp_tType().InvokeMember( \"Workbooks\",
tProperty, null, objApp_Late, null );
//Add a new workbook.
objBook_Late = objBooks_tType().InvokeMember( \"Add\",
vokeMethod, null, objBooks_Late, null );
//Get the worksheets collection.
objSheets_Late = objBook_tType().InvokeMember( \"Worksheets\",
tProperty, null, objBook_Late, null );
//Get the first worksheet.
Parameters = new Object[1];
Parameters[0] = 1;
objSheet_Late = objSheets_tType().InvokeMember( \"Item\",
tProperty, null, objSheets_Late, Parameters );
//Get a range object that contains cell A1.
Parameters = new Object[2];
Parameters[0] = \"A1\";
Parameters[1] = lue;
objRange_Late = objSheet_tType().InvokeMember( \"Range\",
tProperty, null, objSheet_Late, Parameters ); //Write \"Hello, World!\" in cell A1.
Parameters = new Object[1];
Parameters[0] = \"Hello, World!\";
objRange_tType().InvokeMember( \"Value\", tProperty,
null, objRange_Late, Parameters );
//Return control of Excel to the user.
Parameters = new Object[1];
Parameters[0] = true;
objApp_tType().InvokeMember( \"Visible\", tProperty,
null, objApp_Late, Parameters );
objApp_tType().InvokeMember( \"UserControl\", tProperty,
null, objApp_Late, Parameters );
}
catch( Exception theException )
{
String errorMessage;
errorMessage = \"Error: \";
errorMessage = ncat( errorMessage, ssage );
errorMessage = ncat( errorMessage, \" Line: \" );
errorMessage = ncat( errorMessage, urce );
ow( errorMessage, \"Error\" );
}
}
滚动到代码窗口的顶部。将下面的代码行添加到 using 指令列表的末尾:using flection; 查看本文来源
胃溃疡怎么治疗无锡白癜风哪里治疗好
小孩积食怎么调理脾胃
- 明代和田白白玉籽料龟游水乘古白玉老白玉明清白玉文房白玉器
- PSN可能会登陆PC?!索尼PS招聘公告现大意
- 安阳市金水区新奇初级中学2022年招生简章
- 微信朋友圈补丁“你的访问已被记录”,这波操作爱了爱了
- 称重传感器616-300KG 兹迪亚 tedea
- 这些“二胎”高校,发展不比“双一流”差
- 明明一代都碾压《生化危机》了,2代非要这样瞎改,现在干了吧?
- 尚层第八届“红玺杯”别黄家设计大赛,以设计“黄家”说未来
- 腌辣椒,千万别焯水!老妈40年方法学到你,1晚腌好,酸辣脆爽,1年不坏
- 投资者问及:根据公司信息,上市融资了36亿多,但如今市值缩水了一百多亿,粗...
- 亚洲老大!日本人男足约战巴西,比赛时间在6月,将向日本人全国直播
- 沃尔沃C40正式买入,它的价格选自主纯电SUV显然更香?