小编Ami*_*yan的帖子

有没有C编程语言的设计工具?

有没有C编程语言的设计工具?

请注意,我使用C而不是C++,我想使用类似StarUML的设计工具,但似乎UML不是C的好方法,因为C不是面向对象的语言.

设计基于C的应用程序和库的最佳方法是什么?

谢谢.

c

5
推荐指数
1
解决办法
2331
查看次数

.NET PInvoke是否可在Linux和Mac OS X平台上使用?

Windows上可以使用.NET Framework中的Platform Invokation.

[DllImport("user32.dll", CharSet=CharSet.Auto)]
public static extern MessageBoxResult MessageBox(IntPtr hWnd, String text, String caption, int options);
Run Code Online (Sandbox Code Playgroud)

PInvoke是否可在Linux和Mac OS X平台上使用?例如Mono项目?

如果Linux和Mac OS X支持PInvoke,您能否在答案中给我一些示例或参考.

谢谢.

.net c# linux macos pinvoke

5
推荐指数
1
解决办法
3037
查看次数

如何在 Linux API 中使用 wstring(s)?

我想在 Linux 中开发一个应用程序。我想使用 wstring 因为我的应用程序应该支持 unicode 并且我不想使用 UTF-8 字符串。

在 Windows 操作系统中,使用 wstring 很容易。因为任何 ANSI API 都有一个 unicode 形式。例如有两个 CreateProcess API,第一个 API 是 CreateProcessA,第二个 API 是 CreateProcessW。

wstring app = L"C:\\test.exe";
CreateProcess
(
  app.c_str(), // EASY!
  ....
);
Run Code Online (Sandbox Code Playgroud)

但是在 Linux 中使用 wstring 似乎很复杂!例如,Linux 中有一个名为parport_open的 API (这只是一个示例)。

而且我不知道如何将我的 wstring 发送到这个 API(或者像 parport_open 这样接受字符串参数的 API)。

wstring name = L"myname";
parport_open
(
  0, // or a valid number. It is not important in this question.
  name.c_str(), // Error: because type of …
Run Code Online (Sandbox Code Playgroud)

c++ linux wstring

5
推荐指数
1
解决办法
6093
查看次数

如何将托管对象发送到本机函数以使用它?

如何将托管对象发送到本机函数以使用它?

void managed_function()
{
  Object^ obj = gcnew Object();

  void* ptr = obj ??? // How to convert Managed object to void*?

  unmanaged_function(ptr);
}

// The parameter type should be void* and I can not change the type.
// This function is native but it uses managed object. Because type of ptr could not be 
// Object^ I called it "Unmanaged Function".
void unmanaged_function(void* ptr)
{
  Object^ obj = ptr ??? // How to convert void* to Managed object?

  obj->SomeManagedMethods(); …
Run Code Online (Sandbox Code Playgroud)

.net mixed-mode unmanaged c++-cli managed

5
推荐指数
2
解决办法
8105
查看次数

使用第三方开源库的项目如何管理目录结构?

我开发了一个开源应用程序。我的项目的目录结构是:

app
|-include
|-src
|-doc
|-build
|-lib
|-bin
Run Code Online (Sandbox Code Playgroud)

我想使用另一个开源库。有一些选择:

  • 将第三方库源代码添加到includesrc目录中。
  • 编译第三方库并添加到includelib目录。
  • 创建一个third_party目录,并在其中添加第三方库的完整源代码。
  • 创建一个third_party目录并将第三方库的编译添加到其中。

什么是最好的选择?有没有更好的方法来管理使用第三方开源库的项目的目录结构?

open-source directory-structure

5
推荐指数
1
解决办法
1980
查看次数

如何使用GNU汇编程序(as)将程序集文件编译为原始二进制文件(如DOS .com)格式?

我想在Windows中编译这个源代码(这只是一个例子):

start:
NOP
NOP
Run Code Online (Sandbox Code Playgroud)

当我用NASM或FASM编译它时,输出文件长度是2个字节.但是当我用GNU汇编程序(as)编译它时,输出文件长度是292字节!

如何使用GNU汇编程序(as)将程序集文件编译为原始二进制文件(如DOS .com)格式?


为什么我这样做?

我想编写自己的简单操作系统,用C编写代码(不使用任何C标准库,甚至是stdio.h或math.h)并将其转换为汇编:

gcc -S my_os.c -o my_os.asm -masm=intel
Run Code Online (Sandbox Code Playgroud)

然后,我将汇编文件编译为原始二进制文件:

as my_os.asm
Run Code Online (Sandbox Code Playgroud)

然后我重命名a.out(汇编程序的输出)到my_os.flp最后用VMWare启动我的操作系统:)

assembly gnu-assembler binutils

5
推荐指数
1
解决办法
7302
查看次数

是否有可能使用XHTML,CSS和JavaScript编写跨平台的桌面应用程序?

是否可以使用XHTML(或HTML),CSS和JavaScript编写跨平台的桌面应用程序?

如果答案是肯定的,那么如何运行这个应用程序?我应该使用像Firefox这样的浏览器来运行吗?

注意:目前Windows支持HTML应用程序.

javascript css xhtml desktop-application

5
推荐指数
1
解决办法
475
查看次数

具有单个成员的struct是否具有与成员类型相同的性能?

struct用单一构件具有相同的性能作为成员类型(存储器使用和速度)?

示例:

此代码是一个struct成员:

struct my_int
{
    int value;
};
Run Code Online (Sandbox Code Playgroud)

性能是my_int一样的int吗?

c performance struct member

5
推荐指数
3
解决办法
1671
查看次数

应该使用哪个函数将字符串转换为long double?

注意,一般来说,double不同于long double.

strtod将字符串转换为double,但应该使用哪个函数将字符串转换为long double?

c c++ parsing long-double

4
推荐指数
2
解决办法
2283
查看次数

如何计算并行中的完成百分比?

通过for计算完成百分比很容易:

for (int i = 0; i < 10; i++)
{
    for (int j = 0; j < 10; j++)
    {
        // Do somethings...
        Console.WriteLine("{0}% Done!", i * 10 + j + 1);
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

1% Done!
2% Done!
3% Done!
4% Done!
5% Done!
6% Done!
7% Done!
8% Done!
9% Done!
10% Done!
11% Done!
12% Done!
13% Done!
...
93% Done!
94% Done!
95% Done!
96% Done!
97% Done!
98% Done!
99% Done!
100% …
Run Code Online (Sandbox Code Playgroud)

c# console for-loop parallel.for

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