我想使用更大的C#代码作为Objective-C(Cocoa)应用程序的库.
我发现了包装Cocoa代码的MonoMac项目,但我宁愿用Objective-C编写标准的Cocoa应用程序,它可以调用包装好的C#代码(换句话说).
在Windows上,我习惯于制作包含.NET代码的C++/CLI项目,并为基于C/C++的应用程序导出普通的旧C接口.
有一些简单的方法来实现这一目标吗?
你好,我在C#中有这个代码:
float n = 2.99499989f;
MessageBox.Show("n = " + n.ToString("f2", CultureInfo.InvariantCulture));
Run Code Online (Sandbox Code Playgroud)
而这个C++代码:
float n = 2.99499989f;
printf("n = %.2f", n);
Run Code Online (Sandbox Code Playgroud)
第一个输出3.00.
第二个输出2.99.
我不知道为什么会这样.
更新:
我也尝试了Objective-C NSLog,输出为2.99.
我需要快速修复它,所以我使用以下方法:
float n = 2.99499989f;
float round = (float)Math.Round(n, 2);
MessageBox.Show("round = " + round.ToString(CultureInfo.InvariantCulture));
Run Code Online (Sandbox Code Playgroud)
此代码显示2.99,但以双精度计算舍入.我找不到Math.RoundF.
使用来自IDWriteTextLayout的HitTestTextPosition样式API 我没有设法在"ti","ffi"或其他带有Calibri等字体的连字中正确处理文本位置.它总是在结束之后或之前返回位置,如t | i或f | f | i.
使用DirectWrite API在连线内部进行插入符号移动的推荐方法是什么?