我正在尝试为outlook开发一个插件,我找到了一个提供商http://www.add-in-express.com.但是,他们在一个(http://www.add-in-express.com/add-in-net/index.php)中有两个产品,它们允许在使用VS 2010和.Net Framework 4.0中创建COM添加(如何是可能的,我一直认为COM只能在VB6中创建,否则你必须创建一个COM可调用包装器(CCW)).
另一个产品是VSTO Tools(http://www.add-in-express.com/add-in-vsto/index.php),它也使用.Net Framework 4.0,这完全令人困惑.
请帮我理解.
关心Mohit Thakral
Windows 7 32位,IIS 7.5.760016385
我在Visual Basic 6.0中创建了一个DLL,并尝试在经典的ASP代码中使用它:
set obj = Server.CreateObject("a.b")
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
006 ASP 0178
Server.CreateObject访问错误
检查权限时对Server.CreateObject的调用失败.此对象拒绝访问.
err.number = -2147024891
我已经尝试创建iusr_cmpname用户并在此ASP页面的默认网站和虚拟目录中为其授予权限.我有REGSVR32的dll.
我已经去了"打开和关闭Windows功能"并选择了IIS /万维网服务/应用程序开发功能,然后检查了ASP,ASP.net,ISAPI扩展和ISAPI文件管理器.
我已经跟踪了不同新闻组中的许多线索,但我可以解决这个问题.我们去年尝试了这一年,一年半和前一年,并遇到了同样的问题.由于我们无法克服这个问题,我们回到了Windows NT.我们在NT上从未遇到过这个问题.
现在我们再次尝试解决这个问题,以便我们再次转向Windows 7.似乎很多人都遇到了这个问题,但他们找到并发布的任何解决方案似乎都不是我需要的.
任何帮助将不胜感激.谢谢.
我正在尝试实现一个用C#编写的"out of proc"COM服务器.我该怎么做呢?
我需要C#代码从我的主要C++应用程序"out of proc",因为我无法将.NET运行时加载到我的主进程空间
为什么?:
我的C++代码位于一个DLL中,该DLL被加载到许多不同的客户EXE中,其中一些使用不同版本的.NET运行时.由于只能有一个运行时加载到一个进程中,我最好的选择似乎是将我的C#代码放入另一个进程.
我正在开发一个数据库项目,我需要创建Outlook 2007插件,将当前预览的消息保存到我的数据库中.
有人可以给我一个关于如何在Delphi中创建Outlook插件的分步指南,以及如何部署它?
谢谢
我读过早期版本的Chrome支持ActiveX,但后来限于某些MIME类型(支持Windows Media Player).然后我读到谷歌将严格为韩国市场启用ActiveX.如何在Chrome中重新启用此功能?
我们的基于Web的产品依赖于第三方的ActiveX控件来播放自定义视频.这限制了我们IE.我们也很乐意支持Chrome,但发现它不可能没有ActiveX支持.
如何在不引用库的情况下从程序标识符或ProgID(例如"Word.Application")在C#4.0中创建动态COM/OLE/ActiveX对象?
在C#3.5中,我必须写一些类似的东西
Type comObjectType = Type.GetTypeFromProgID(progId, true);
Activator.CreateInstance(comObjectType);
Run Code Online (Sandbox Code Playgroud)
有没有更简单的方法在C#4.0中这样做,所以我可以将它分配给动态类型的变量(使用动态关键字)?
(问题在最后)
我正在对第三方COM组件产生严重的头痛,这些组件不断更改FPU控制字.
我的开发环境是Windows和Visual C++ 2008.普通的FPU控制字指定在各种条件下不应抛出任何异常.我已经通过查看中_CW_DEFAULT找到的宏float.h以及在启动时查看调试器中的控制字来验证这一点.
每次我调用COM对象时,控制字在返回时被修改.这很容易防御.我只是重置控制字,一切都很好.问题是当COM组件开始调用我的事件接收器时.我可以在收到事件调用后立即通过重置控制字来保护我的代码,但是一旦从事件调用返回,我就无法做任何事情.
我没有此COM组件的源代码,但我与作者联系.我从他那里得到的回答是"嗯?".我不认为他对我正在谈论的内容有任何线索,所以我担心自己必须对此做些什么.我相信他的运行时(我认为它是Delphi或Borland C++,因为DLL中充满了符号名称,都以大写字母T开头),或者他正在使用的其他一些第三方代码,这导致了问题.我不认为他的代码明确地修改了FPU控制字.
那么,我该怎么办?从业务角度来看,必须使用此第三方组件.从技术角度来看,我可以抛弃它,并自己实现通信协议.然而,这将是非常昂贵的,因为该协议涉及处理信用卡交易.我们不想承担责任.
我迫切需要一个关于Borland产品中FPU设置的黑客或一些有用的信息,我可以传递给组件的作者.
有什么我能做的吗?我不认为组件作者有什么需要解决它(通过他的相当无知的回答判断).
我一直在想着安装自己的异常处理程序,我只是在处理程序中重置控制字,并告诉Windows继续执行.我试过安装处理程序SetUnhandledExceptionFilter(),但由于某种原因,没有捕获异常.
我想感谢大家的建议.我已经向作者发送了关于他可以做些什么的说明,以便让我的生活变得更轻松,而不仅仅是我的代码的许多其他客户.我向他建议他应该对FPU控制字进行采样DllMain(DLL_PROCESS_ATTACH),并保存控制字以供日后使用,这样他就可以在调用我的事件处理程序之前重置FPU CW,并从我的调用中返回.
就目前而言,如果有人有兴趣,我会有一个黑客攻击.黑客攻击可能是一个糟糕的,因为我不知道它对他的代码会做什么.我之前收到的确认是他在代码中没有使用任何浮点数,所以这应该是安全的,除非他使用的某些第三方代码依赖于FPU异常.
我对我的应用程序进行的两项修改:
WH_CALLWNDPROC)以捕获绕过消息泵的转角情况在这两种情况下,我都会检查FPU CW是否已更改.如果有,我将其重置为_CW_DEFAULT.
我在运行IIS6的Windows XP Pro SP2 x64计算机上收到以下错误:
System.Runtime.InteropServices.COMException:
Retrieving the COM class factory for component with CLSID
{3C250CBD-6CC9-11D2-9457-00004B48467E} failed due to the following error:
80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
Run Code Online (Sandbox Code Playgroud)
尝试实例化COM互操作对象时会发生这种情况.
奇怪的是,这可以在与应用程序池(AD中的用户)相同的帐户下运行的控制台应用程序中正常工作.即两者都使用UserX,所以它似乎不是一个明显的权限问题.
其他人有类似的东西吗?
我想从cmd为服务设置密码.我有选择权
sc.exe config"服务名称"obj ="DOMAIN\User"密码="密码"
当我执行时,它显示"[SC] ChangeServiceConfig SUCCESS" ,如果我启动我得到的服务
"Windows无法在本地计算机上启动service1服务.错误1069:由于登录失败,服务未启动."
我搜索并获得以下链接 使用SC.exe设置服务凭据密码失败
我的密码不包含特殊字符.
有什么选择呢?
我有这个COM方法签名,在C#中声明:
void Next(ref int pcch,
[MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 0)]
char[] pchText);
Run Code Online (Sandbox Code Playgroud)
我称之为:
int cch = 100;
var buff = new char[cch];
com.Next(ref cch, buff);
Run Code Online (Sandbox Code Playgroud)
.NET互操作层是否首先将整个数组复制到临时的非托管内存缓冲区,然后将其复制回来?或者数组是否自动固定并通过引用传递?
为了尝试,我在COM对象(C++)中做到了这一点:
*pcch = 1;
pchText[0] = L'A';
pchText[1] = L'\x38F'; // '?'
Run Code Online (Sandbox Code Playgroud)
我'?'回来时检查buff[1]C#时会回来.但我不认为这是一个强有力的证据,证明阵列固定,而不是来回复制.
com ×10
c# ×4
windows ×3
.net ×2
delphi ×2
activex ×1
asp-classic ×1
asp.net ×1
batch-file ×1
c#-4.0 ×1
c++ ×1
cmd ×1
com-interop ×1
components ×1
createobject ×1
dynamic ×1
fpu ×1
iis ×1
interop ×1
outlook ×1
plugins ×1
vsto ×1
windows-7 ×1