小编Mor*_*öfl的帖子

如何链接到D程序中的D库

我是D编程语言的新手,有一个非常简单的问题.

我想编译一个D脚本库,然后在我的其他D项目中使用它.

在链接到.lib文件并为它们创建标题的CI中,但在DI中找不到类似的东西(D中是否还有某种标题?)

我使用D-IDE作为我的IDE,使用DMD2作为我的编译器.

d static-linking

9
推荐指数
2
解决办法
1469
查看次数

同时读写文件

对于使用File作为某种公司设备预留的全局存储的应用程序,我需要一种方法来读取和写入文件(或锁定文件,从中读取,写入并解锁).一个小代码片段将拍摄我的意思:

FileStream in = new FileStream("storage.bin", FileMode.Open);
//read the file
in.Close();

//!!!!!
//here is the critical section since between reading and writing, there shouldnt
//be a way for another process to access and lock the file, but there is the chance
//because the in stream is closed
//!!!!!
FileStream out = new FileStream("storage.bin", FileMode.Create);
//write data to file
out.Close();
Run Code Online (Sandbox Code Playgroud)

这应该是这样的

LockFile("storage.bin");
//read from it...
//OVERwrite it....
UnlockFile("storage.bin");
Run Code Online (Sandbox Code Playgroud)

该方法应该是绝对安全的,因为程序应该同时在2000个设备上运行

c# file

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

C(或asm):如何执行存储在内存中的c代码(从标签复制)

我尝试通过将标签之间的C代码中的代码段复制到malloc分配的内存来"内联"我的VM.所以我用开始和结束标签定义了Ops,我想将以下代码定义的指令复制到缓冲区然后执行(我不确定这是否可行)

OP_PUSH0_START:
    sp += 4; *sp = 0; // I WANT THE INSTRUCTIONS OF THIS LINE COPIED TO THE BUFFER
OP_PUSH0_END:
Run Code Online (Sandbox Code Playgroud)

这样做我认为以下代码片段将起作用

void * ptr0 = &&OP_PUSH0_START;
void * ptr1 = &&OP_PUSH0_END;
while(ptr0 < ptr1)
{
    buf[c++] = *ptr0;
    ptr0++;
}
goto buf; //jump to start of buffer
Run Code Online (Sandbox Code Playgroud)

但我不能在没有记忆错误的情况下阅读它

我会很高兴任何链接或任何建议如何实现这一点

c memory assembly

7
推荐指数
1
解决办法
1763
查看次数

D内联汇编程序:访问静态变量

我在D编程语言中使用内联汇编程序访问静态变量时遇到了一些麻烦.文档说我必须访问局部变量

mov EAX, var[EBP]; //or mov EAX, var;
Run Code Online (Sandbox Code Playgroud)

和类变量

mov EBX, this;
mov EAX, var[EBX];
Run Code Online (Sandbox Code Playgroud)

但它没有记录如何访问静态变量.这是我的代码抛出错误:

module test;

static int A = 1234;

static void SetA()
{
    asm
    {
        mov A, 5432; //compiles, but throws an error
        //tried it with "mov dword ptr [A], 5432; too
    }
}
Run Code Online (Sandbox Code Playgroud)

对于可以从汇编程序和汇编程序访问的整数,我真的需要一种"全局存储"的方式,我会非常高兴有任何这方面的帮助(或替代方法).

assembly d inline-assembly

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

标签 统计

assembly ×2

d ×2

c ×1

c# ×1

file ×1

inline-assembly ×1

memory ×1

static-linking ×1