小编Nek*_*ios的帖子

ANSI C作为C#项目的核心?这可能吗?

我正在编写一个非GUI应用程序,我希望它是OS X和Windows之间的跨平台.我正在考虑以下架构,但我不知道它是否适用于Windows端:

(平台特定入口点) - > ANSI C主循环=> ANSI C模型代码执行数据处理/逻辑=>(平台特定帮助程序)

所以我打算用常规的ANSI C编写核心内容,因为A)它应该是独立于平台的,B)我对C,C非常熟悉它可以完成这项工作并做得很好

(平台特定的入口点)可以用任何必要的方式编写来完成工作,这是一小部分代码,对我来说无关紧要.

(平台特定的帮助者)是棘手的事情.这就像解析XML,访问数据库,图形工具包等等.在C中不容易的事情.现代语言/框架将免费提供的东西.在OS X上,这段代码将用Objective-C与Cocoa连接编写.在Windows上,我认为我最好的选择是使用C#

所以在Windows上我的架构(简化)看起来像

(C#或C?) - > ANSI C - > C#

这可能吗?到目前为止的一些想法/建议..

1)将我的C核编译为.dll - 这很好,但似乎没有办法调用我的C#助手,除非我能以某种方式获取函数指针并将它们传递给我的核心,但这似乎不太可能

2)编译C .exe和C#.exe并让它们通过共享内存或某种IPC进行通信.我并不完全反对这一点,但它显然引入了很多复杂性,所以它看起来并不理想

3)而不是C#使用C++,它给我一些很好的数据管理和好帮手代码.我可以很容易地混合它.我所做的工作可能很容易移植到Linux.但我真的不喜欢C++,我不希望这会转向第三方图书馆节目.并不是说它是一个巨大的交易,但它是2010年......应该内置任何基本数据管理.而针对Linux并不是一个优先事项.

请注意,正如我所看到的其他类似问题中所建议的那样,没有"完全"的替代方案是可以的.java,RealBasic,mono ..这是一个非常性能密集的应用程序,用于游戏/模拟目的的软实时,我需要C和朋友在这里做得对(也许你没有,但我这样做)

c c# architecture

4
推荐指数
1
解决办法
1973
查看次数

创建优秀的Web应用程序,几乎没有手动HTML?接受建议

我是C的老手,也是网页设计的新手.我最近发现自己对此更加兴奋所以我一直在研究这项技术.我几乎可以使用任何东西,但是当我环顾四周时,我看到MVC类型技术的"View"组件基本上是手工编写的数据布局.

我想避免编写任何本手册查看布局或查看HTML - 我希望能够删除这些用户界面元素并安排它们,因为我将布置"标准"GUI.什么技术允许这个?

web-applications

4
推荐指数
1
解决办法
134
查看次数

在 OpenGL ES 2.0 中切换着色器是否会影响性能?

#1 OpenGL ES 2.0 设备(iPhone/iPad)一次可以编译和可用的着色器程序的数量/大小是否有限制?

#2在通道中间切换程序是否有任何性能开销,例如,如果我要渲染 100 个三角形,使用着色器 1 渲染 50 个,使用着色器 2 渲染 50 个,在使用它的任何情况下,我都会遇到性能下降吗?例如,每个三角形的交替程序是否可以更慢,还是应该更快地批处理并执行所有 50 个着色器 1 然后执行所有 50 个着色器 2?我想我是在问是否有一些内部上下文切换,或者 OpenGL ES 库是否只是指定卡上要执行的着色器程序内存的地址,如果我为每个三角形指定不同的地址并不重要。

iphone 3d opengl-es

4
推荐指数
1
解决办法
1059
查看次数

Objective-C的跨平台功能语言

编辑:花了几个小时研究这个,我不认为我会找到任何实际上最终会节省我时间的东西,相比于找到合适的语言,合适的绑定和维护该环境的时间和精力面对所有这些平台的变革.我接受的答案似乎是最现实的,因为对大多数人来说这是最好的主意.我从这些对话和其他人那里得到的意见是,唯一真正的前进方向是使用可以在没有外部绑定的情况下运行的功能语言,或者使用由F#等商业实体维护的绑定.这是太多的工作和太少的需求,而野外可用的状态反映了这一点.我希望有一天能改变.

我想在我的软件中开始使用一种函数式语言,除了 Objective-C这是我的主要语言(C可能作为绑定工作吗?).必须是跨平台的,即Windows,Linux,OSX(x86)和iOS(ARM).我应该使用什么,如何实现这一目标?

我打算很快切换到LLVM后端和Clang for Objective-C,如果这有任何区别的话.

我没有任何功能语言的"知识投资",虽然我已经搞砸了一些.我正在从头开始学习,所以如果可能的话,我想学习一些非奥术的东西

  • 解决方案必须是真实的,有很多初步或原型工作,但..
  • 我正在使用目标C,我确实需要Cocoa绑定; 因为我的大量数据都在使用Cocoa类型,所以事情会变得很糟糕.另外,objective-c消息传递会阻止我在静态C函数和Objective-C对象实例之间创建粘合代码(这已经是Objective-c方法调用正在内置的...)
  • 对于静态链接,解决方案必须是安全许可证(iOS要求)

以下是我想要做的事情的例子:

  • 处理字节语言,例如网络协议
    • 输入:字节和长度以及'调用'objective-c方法实例
    • 输出:返回调用objective-c方法实例,发送cocoa-container参数
  • 在棋盘游戏中做出关于最佳"移动"的决定
    • 输入:包含可可的状态数据,'调用'objective-c方法实例
    • 输出:可能改变状态数据,可能调用任意的objective-c方法,然后返回调用objective-c方法实例,发送它cocoa-container参数

ocaml haskell functional-programming cross-platform llvm

4
推荐指数
1
解决办法
1614
查看次数

翻转NSWindow objective-c/cocoa的坐标系

如何翻转NSWindow的坐标系?我知道它有一个内容视图,但是如何翻转特定视图的NSView类型的坐标系?

在我的NSWindow的内容视图的子视图中,我通过子类化NSView来翻转坐标系,将它放在我的窗口中,并在该子类NSView中实现方法isFlipped返回YES.不知道我怎么能让NSWindow从"MyFlippedSubclassedNSView"中获取内容视图

cocoa objective-c

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

如何在没有拉伸的情况下在OpenGL(ES)中显示非2次幂纹理作为精灵?

我想绘制一个任意大小的精灵作为png,说一些像56宽x 30高的完全疯狂.两个维度都不是2的幂.此外,我可能想绘制另一个72宽x 33高的精灵.表明这是因为这里没有'技巧',我需要处理一般情况.

所以我有这个PNG(透明度),我想绝对没有拉伸,插值绘制成一个精灵,等等.我想它映射1:1与屏幕上的像素.假装这些精灵是像素艺术(它们可能是也可能不是,但它们是为精确的分辨率绘制的).

我理解精灵绘图 - 两个三角形作为四边形,通过纹理坐标映射渲染我的纹理 - 但是我只能理解它的2的幂.而且我也不明白如何调整我的'四边形'并设置我的GL矩阵这样我就可以使精灵与我的精灵的像素大小完全相同

我正在使用OpenGL ES,因此使用新扩展来使用非2次幂纹理是不可接受的.

我一次只画3-10个精灵,所以我愿意接受有关效率的建议,但我最感兴趣的是"准确"的结果.

opengl-es sprite

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

++ i与i ++:现代编译器有什么区别吗?

可能重复:
在C++中i ++和++ i之间是否存在性能差异?

我明白那个:

i++;
Run Code Online (Sandbox Code Playgroud)

应该采取更多的指示

++i;
Run Code Online (Sandbox Code Playgroud)

因为它生成了一个你不需要使用的中间结果,所以人们把"++ i"放在对中间结果毫无用处的代码行上.

但是,编译器非常聪明,他们可以判断结果是否被使用.他们可以说出各种各样的事情.但它们并不神奇

所以我很好奇 - 在现代编译器上确实选择了另一种实际问题,或者它是否只是简单地编译成相同的机器代码?

c c++ compiler-construction

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

在OpenCL中使用128位或256位无符号整数?

我正在设置软件以处理大数乘法,并且我想比较几种技术之间的速度,其中之一是OpenCL。如何传递并乘以两个256位无符号整数?这对性能有何影响?在性能变糟之前可以得到多少个数字的实际限制是什么?

opencl

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

如何在iPhone OpenGL ES 2.0中渲染和呈现帧缓冲区之间切换?

iPhone OpenGL ES 2.0 ..

  • 第一帧,渲染到我的帧缓冲然后呈现它(因为它默认在模板OpenGL ES应用程序中工作).
  • 在下一帧中,我想使用渲染的帧缓冲区作为我的着色器的输入,同时渲染到另一个帧缓冲区并呈现第二帧缓冲区.
  • 下一帧,我想使用framebuffer2作为我的着色器的输入,同时再次渲染到第一个帧缓冲区.
  • 重复

我该怎么做呢?

iphone opengl-es framebuffer

2
推荐指数
1
解决办法
2941
查看次数