问题标签 [managed]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3588 浏览

sharepoint - 如何通过 SharePoint 对象模型创建托管路径

这是一个 WSS/SharePoint 专家的问题。

考虑这种情况:我有一个 ASP.Net Web 服务,它将我们的公司 CRM 系统和基于 WSS 的 Intranet 链接在一起。我要做的是在将新客户端添加到 CRM 系统时提供新的 WSS 网站集。为了完成这项工作,我需要以编程方式将托管路径添加到新网站集。我知道这可以通过对象模型实现,但是当我在自己的 Web 服务中尝试它时,它失败了。示例代码摘录如下:

此代码因 SPUtility.ValidateFormDigest() 上的 NullReferenceException 而失败。研究表明这可能是由于权限不足,我尝试使用 SPSecurity.RunWithElevatedPrivileges(AddressOf AddManagedPath) 在提升的权限块中运行代码,其中 AddManagedPath 是包含上述代码示例的子过程。

然后失败并出现 InvalidOperationException,“由于对象的当前状态,操作无效。”

我哪里错了?

我设法做的一种解决方法是通过 Process.Start() 调用 STSADM.EXE,提供必要的参数,这很有效。

更新:在开发 Web 服务时,我使用内置的 Visual Studio 2005 Web 服务器运行它——这将在什么安全上下文下运行?我可以通过在 web.config 中添加条目来更改安全上下文吗?

更新:我认为问题肯定与未在正确的 SharePoint 安全上下文中运行 Web 服务有关。我决定采用我建议的解决方法,并使用 STSADM,但要执行此操作,运行 Web 服务的应用程序池标识必须是 SharePoint 管理员的成员。

0 投票
3 回答
10598 浏览

error-handling - 如何在 Windows Installer 中使用托管自定义操作显示错误消息

我正在编写托管自定义操作。我正在使用 Windows Installer Xml 中的 DTF 框架将托管 dll 包装到可用的 CA dll 中。CA 做了它应该做的事情,但我仍然遇到错误处理问题:

上面的代码在 MSI 日志中生成以下文本:

MSI (c) (C4 ! C6) [13:15:08:749]:产品:TestMSI -- 错误 27533。区分大小写的密码不匹配。

错误编号是指包含在 MSI 中的错误表中的代码。上面显示的消息是正确的。

我的问题是:为什么 Windows Installer 不创建一个对话框来通知用户错误?

0 投票
1 回答
844 浏览

c++ - WCF 服务问题的托管 C++ Web 参考

我开发了一个名为 CLSAPIService 的简单 WCF 服务,它的 Contract 包含一个名为 UpdateLastOpenCloseCall 的方法:

它的参数之一是一个简单的 DataContract:

然后我在 Visual .Net 2005 的托管 C++ 中创建了一个简单的测试项目,并为该服务创建了 Web 参考:

当 BusinessDataField 结构到达 WCF 方法时,似乎只有 Value 属性被更新,而 Name 属性是null,即使我为它分配了一个值。

可能是什么问题呢?

0 投票
7 回答
82623 浏览

c# - 如何以托管方式在.NET中获取父进程

我一直在寻找在 .NET 中获取父进程的方法,但只找到了 P/Invoke 方式。

0 投票
7 回答
8001 浏览

c++ - 在托管包装器中包装非托管 c++

我有一个非托管 C++ 库。我想公开 .NET 应用程序的功能。我不确定如何处理一个特定的功能:

typedef void (free_fn*) (void*); void put (void *data, free_fn deallocation_function);

这个想法是您将动态分配的缓冲区传递给函数并提供一个释放函数。库将异步处理数据,并在以后不再需要数据时释放缓冲区:

无效 *p = malloc (100); ... 填充缓冲区... put (p, free);

我怎样才能将这种东西暴露给 .NET 应用程序?

0 投票
5 回答
3932 浏览

.net - 在托管 .NET 代码中分配非托管内存

嗨,我有一个非托管函数,它占用 malloc 分配的一大块内存,然后以异步方式释放它。我想将它包装到托管包装器中。下面的代码可以吗?

0 投票
4 回答
1327 浏览

c# - 非托管/托管互操作 - 传递 int[] 时遇到问题

我正在攻读化学博士学位,因此我需要编写一个软件应用程序来帮助我在显微镜下对样品进行成像。该显微镜配有 xyz 纳米定位台。该阶段由硬件供应商使用 VC++ 编写的非托管 DLL 控制。我可以为您提供更多需要的细节,但让我从这个开始;

dll 中的一种方法允许我读取运动轴的设置:

C++ 语法:

根据惯例,BOOL 是 int 0 或 1。

我的 C# 包装器包含:

这对我来说似乎是正确的。但是,当我在我的主应用程序中尝试这样的事情时(查询轴 1,2 和 3):

我一直得到这样的数组:

{6, 0, 10} 而根据设备本身的显示我应该得到 {0, 0 , 0} 。互补功能:

BOOL E7XX_SVO (int ID, const char* szAxes, const BOOL* pbValueArray)在舞台上设置相同的状态位也不起作用......

dll 中的其他命令运行良好。我可以毫无问题地传入和传出字符串和双打,但不是 BOOL 类型......

你们知道可能出了什么问题吗?

0 投票
4 回答
3772 浏览

c# - 使用来自 C# 的托管 C++ dll

我使用托管 C++ 创建了一个 dll。现在我正在尝试从 C# 中使用它。我已将对象添加到项目引用中。对象浏览器正确显示dll中的对象,对象浏览器中dll的路径与实际路径相对应。

但是,当我运行 C# 程序时,它会抱怨:

未处理的异常:System.IO.FileNotFoundException:找不到指定的模块。(来自 HRESULT 的异常:0x8007007E)

知道还需要做什么吗?

谢谢。

0 投票
8 回答
605 浏览

java - C++ 与托管中这些指针错误的后果

我将其设为社区 wiki 是为了更好地理解这些错误与其运行时或编译结果之间的语义差异。另外,我在 Java 上的编码时间太长了,我想在 C++ 中更好地学习指针——所以我需要其他人来做。

Edit2:我正在重构这个问题。我试图得出的区别是,在托管代码上,这些错误都通过异常统一处理。但是,C++ 并不是那么简单——我想了解在每种情况下您是否可能会遇到错误、段错误、可恢复的行为,或者更糟糕的是传播的无声错误。请查看我的新具体示例(是的,我知道答案总是“完全按照编码”;毕竟我是一名程序员。我想知道您经常遇到的有趣细节。)

Edit3:在下文中,“类”是指类的一个实例。谢谢

错误 1:指针值为 NULL,即指针 == 0

  • 托管代码:在运行时引发 NullPointerException
  • C++:?
  • 示例:嗯,呃,你有一个指向的指针,但它被初始化为 0。当你将它发送到函数时会发生什么。IE。C++ 没有留下任何类的指示;它只是公共“占位符”的串联。

错误 2:指针指向内存中的前一个类,其值为 NULL 或 == 0

  • 托管代码:不允许通过内存模型。所有引用的对象都保留在内存中。没有特殊情况?
  • C++:?
  • 示例:您有一个指向的指针,并且该类被删除了。然后将指针作为参数传递给函数。显然,出现的问题取决于函数如何处理指向的类。我的问题是:在 STL 上是否有故障安全处理?一个好的专有库?平均开源代码?

错误 3:指针指向的类不属于正确的类或子类

  • 托管代码:引发 ClassCastException。
  • C++:[如果错误则更正]编译器试图通过不允许错误的强制转换来解决这个问题。但是,如果这发生在运行时,我认为是未定义的行为。是否存在类似的类对象不会总是爆炸的情况?
  • 示例:您的指针被错误地重新分配,使其值完全等于另一个类。我假设您将这个引用的类传递给的函数只会盲目地获取它引用的任何实例变量的偏移量。因此,它错误地解释了原始二进制文件。在 C++ 中没有办法防止这种情况发生吗?和/或……有没有这种能力被永远利用的情况?

错误 4:指针指向类中间(未对齐)或未初始化的垃圾

  • 托管代码:内存模型不允许。
  • C++:相当于案例 3?
  • 示例:您实际上经常合法地使用它。例如,您可以直接访问 STL 向量的数组 - 这是指向类的中间。然而,似乎也一样容易“错过”?是否存在一个常见的陷阱,您可能会违背自己的意愿发生这种情况,例如如果加载的库与您链接的库不同(并且是否有防止这种情况发生的机制?)

在此先感谢所有贡献者。

0 投票
3 回答
1839 浏览

c# - 托管与非托管

你对他们有什么看法?

有时我必须在工作中编写非托管代码,但是对于大型(游戏)项目,它只会变得更加耗时和复杂,这可以通过投入更多人来解决。

您认为托管代码对于大规模应用程序是否可行?(像 Photoshop、3ds MaxMayaXSI等应用程序,这些应用程序计算密集,但没有游戏的实时要求(在一定程度上)。