合肥定制网站建设,注册越南网站vn,wordpress4.0友情链接,成都近期发生的大事我想在程序里和Word交互。老师跟我说不要学COM#xff0c;因为它已经过时了。但是我不想再把代码移植到C#上面#xff0c;然后用VSTO——已经用了std::unordered_set#xff01;因为我使用了Copilot#xff0c;结合我的思考#xff0c;写了下面的代码#xff1a;
#impor…我想在程序里和Word交互。老师跟我说不要学COM因为它已经过时了。但是我不想再把代码移植到C#上面然后用VSTO——已经用了std::unordered_set因为我使用了Copilot结合我的思考写了下面的代码
#import libid:2DF8D04C-5BFA-101B-BDE5-00AA0044DE52 // mso.dll
#import libid:0002E157-0000-0000-C000-000000000046 // vbe6ext.olb
#import libid:00020905-0000-0000-C000-000000000046 rename(ExitWindows, WordExitWindows) // msword.olb
#include stdio.h
#include comdef.hint main()
{if (CoInitialize(NULL) ! S_OK) {fprintf(stderr, 初始化 COM 库失败);return -1;}try {Word::_ApplicationPtr pWordApp;pWordApp.CreateInstance(__uuidof(Word::Application));Word::_DocumentPtr pDoc pWordApp-Documents-Add();Word::RangePtr pRng pDoc-Content;pRng-Text 世界你好;pRng-Font-Name 新宋体;pRng-Font-Size 14;pRng-Text 你好福大;pWordApp-Visible VARIANT_TRUE;} catch (const _com_error e) {fprintf(stderr, COM 错误%s, e.ErrorMessage());}CoUninitialize();return 0;
}
由于考虑不同版本库位置的差异因此直接使用CLSID标识这些库。可以在注册表编辑器里面查到这些CLSID。最终运行效果如下 其实认真阅读就可以发现代码刚好概括了使用鼠标进行的Word操作。
这份代码目前看上去可以在Windows上移植。我使用的Word是2021版本的64位 在弹性云服务器上安装了Word 32位把发布版本的程序scp到服务器上程序运行正常如下图。