小编Smj*_*ert的帖子

将C#字符串传递给C++并将C++结果(字符串,字符*等)传递给C#

我尝试了不同的东西,但我对Interop很生气.

(这里的单词string不是指变量类型,而是"char的集合"):我有一个非管理的C++函数,在dll中定义,我试图从C#访问,这个函数有一个字符串参数和一个字符串返回值,如下所示:

string myFunction(string inputString)
{
}
Run Code Online (Sandbox Code Playgroud)

C++方面应该是什么字符串?和C#one?什么参数需要DllImport呢?

c# c++ string interop

13
推荐指数
1
解决办法
3万
查看次数

关于.NET垃圾收集器的疑问

我已经阅读了一些关于.NET垃圾收集器的文档,但我仍有一些疑问(C#中的示例):

1)GC.Collect()是否调用部分或完整集合?2)部分收集是否会阻止"受害者"应用程序的执行?如果是..那么我想这是一个非常"轻松"的事情要做,因为我正在运行一个使用2-3GB内存的游戏服务器而且我"从不"执行停止(或者我看不到它们...... ).3)我已经阅读了关于GC根的内容,但仍然无法理解它们是如何工作的.假设这是代码(C#):

MyClass1的:

[...] 
public List<MyClass2> classList = new List<MyClass2>(); 
[...]
Run Code Online (Sandbox Code Playgroud)

主要:

main()
    {
     MyClass1 a = new MyClass1();
     MyClass2 b = new MyClass2();
     a.classList.Add(b);

     b = null;

     DoSomeLongWork();
    }
Run Code Online (Sandbox Code Playgroud)

是否有资格被垃圾收集(在DoSomeLongWork完成之前)?对classList包含的b的引用,是否可以将其视为根?或者root只是对实例的第一个引用?(我的意思是,b是根参考,因为实例化发生在那里).

c# garbage-collection

9
推荐指数
1
解决办法
1257
查看次数

标签 统计

c# ×2

c++ ×1

garbage-collection ×1

interop ×1

string ×1