标签: function-call

在Win32环境,C++中从ntdll.dll调用Nt函数

我想从ntdll.dll调用一些Nt函数,我就是这样做的.

对于调用:NtTestAlert(),您需要典型的ntcall内核例程,可通过int 2Eh访问.(从这里我得到了Nt函数http://undocumented.ntinternals.net/)

代码也未完成,我得到:

*错误C2664:'_ ntcall':无法将参数1从'int'转换为'MESS( _stdcall )'

#include <iostream>
#include <windows.h>
#include <Ntsecapi.h>

using namespace std;

typedef int(__stdcall MESS)(unsigned int);

void __ntcall(MESS *msg)
{
    __asm
    {
        int 2Eh;
    }
}

int main(void)
{
    MESS *me = 0;
    int result = 0;

    HINSTANCE__ *hModule= LoadLibrary(L"C:\\Windows\\System32\\ntdll.dll");

    if(hModule != 0)
    {
        me = (MESS*)GetProcAddress(hModule, "NtTestAlert");

        if(me != 0)
        {
            unsigned int type = 1;

            result = (__ntcall((*me)(type)));
        }
        else
        {
            cout << "Error Load function!" << endl;
        }

        FreeLibrary(hModule);
    } …
Run Code Online (Sandbox Code Playgroud)

c++ winapi native function-call ntdll

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

Erlang函数调用 - 为什么调用self()作为直接参数不起作用?

当我们意识到这是问题时,我和我的朋友试图在我们的代码中找到一个错误.

random_function(spawn_link(fun() -> worker(List, self(), Death) end));
Run Code Online (Sandbox Code Playgroud)

这是解决方案:

PID = self(),
random_function(spawn_link(fun() -> worker(List, PID, Death) end));
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,为什么不能直接调用self()函数呢?是因为它是一个匿名函数还是某种特殊的Erlang?

erlang functional-programming function-call

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

如何确定是否在Powershell中调用了一个函数

我有一个大脚本,我想忽略一个函数调用,如果已经调用它.

我有一个标志,现在设定为确定这一点.但是,我怎么做这个,而不需要有一个标志或计数.

谢谢!

powershell function-call powershell-3.0 powershell-4.0

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

是否有一个let/flet/labels之类的概念用于绑定闭包以避免funcall?

虽然过了让lambda我发生了

(defmacro! dlambda (&rest ds)
  `(lambda (&rest ,g!args)
     (case (car ,g!args)
       ,@(mapcar
           (lambda (d)
             `(,(if (eq t (car d))
                  t
                  (list (car d)))
               (apply (lambda ,@(cdr d))
                      ,(if (eq t (car d))
                         g!args
                         `(cdr ,g!args)))))
           ds))))
Run Code Online (Sandbox Code Playgroud)

他们随后如此调用:

(setf (symbol-function 'count-test)
    (let ((count 0))
      (dlambda
        (:inc () (incf count))
        (:dec () (decf count)))))
Run Code Online (Sandbox Code Playgroud)

是否有像flet/labels/let这样的结构,我可以将结果闭包绑定到,以避免以全局方式使用funcall或setf符号函数?所以我可以这样做:

(with-closures ((counter (let ((count 0))
                          (dlambda
                           (:inc () (incf count))
                           (:dec () (decf count))))))
              (counter :incf))
Run Code Online (Sandbox Code Playgroud)

closures common-lisp function-call

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

Haskell函数调用中的括号

我在努力记住在调用Haskell函数时如何使用括号.我来自C风格的背景,我习惯于f(comma, separated, args)调用函数的语法.显然这与(在Haskell中)相同,((((f) comma) separated) args)但这只是令人困惑.

为什么我需要所有这些括号?

haskell function function-call

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

Python中二项分布的概率质量函数

我使用Python3来计算这个维基百科示例的概率质量函数(PMF):

在此输入图像描述

我试着遵循这个scipy文档:

https://docs.scipy.org/doc/scipy-0.19.0/reference/generated/scipy.stats.binom.html

文件清楚地说:

Notes

The probability mass function for binom is:

binom.pmf(k) = choose(n, k) * p**k * (1-p)**(n-k)

for k in {0, 1,..., n}.

binom takes n and p as shape parameters.
Run Code Online (Sandbox Code Playgroud)

好吧,我试图在考虑维基百科的例子的情况下实现这一点.这是我的代码:

from scipy.stats import binom

n = 6

p = 0.3

binom.pmf(k) = choose(n, k) * p**k * (1-p)**(n-k)

print  (binom.pmf(1))
Run Code Online (Sandbox Code Playgroud)

但是,我收到此错误的消息:

  File "binomial-oab.py", line 7
    binom.pmf(k) = choose(n, k) * p**k * (1-p)**(n-k)
    ^
SyntaxError: can't assign to function call
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

probability scipy function-call python-3.x

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

如何正确传递数组作为函数参数?

当我尝试将数组发送到函数时,我得到一个错误.

这是我的minunit测试程序:

#include "minunit.h"
#include "calc.h"
#include <stdio.h>

int tests_run = 0;

 static char * test_Repetitve() {
     mu_assert("error in test_Repetitive, Repetitive != 7", HistogramArray({1,2,3,4,5,6,7})== 7);
     return 0;
 }

 static char * all_tests() {
         mu_run_test(test_Repetitive);
     return 0;
 }

 int main(int argc, char **argv) {
     char *result = all_tests();
     if (result != 0) {
         printf("%s\n", result);
     }
     else {
         printf("ALL TESTS PASSED\n");
     }
     printf("Tests run: %d\n", tests_run);

     return result != 0;
 }
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是

mu_assert("error in test_Repetitive, Repetitive != 7", HistogramArray({1,2,3,4,5,6,7})== 7);
Run Code Online (Sandbox Code Playgroud)

它进入这个功能: …

c arrays function compound-literals function-call

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

调用对象时这些括号是什么意思?

刚刚遇到这个声明,并想知道为什么这个函数调用最初看起来像一个演员?

SomeClass bo = new SomeClass(); // blabla something like that to initialize the object variable
(bo).setValue(bo.getValue().negate());
Run Code Online (Sandbox Code Playgroud)

至于我还没有看到这种语法 - 与简单相比它做了什么

bo.setValue(bo.getValue().negate());
Run Code Online (Sandbox Code Playgroud)

java syntax parentheses function-call

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

猛击。返回两个函数级别(两个嵌套调用)

我需要知道 Bash 是否有针对我的情况的解决方案。我需要在某些条件后进行“双重回报”。我的意思是,执行函数的返回并返回父函数以跳过该父函数的其余代码。

我知道我可以使用函数返回值进行条件操作来实现此目的。但我想知道 Bash 中是否存在类似“break 2”的函数。如果可能的话,我不想修改父函数的代码,因为正如你可以想象的,在我的真实脚本中有几十个函数,我不想修改所有函数。

例子:

#!/bin/bash

function sublevelone() {
    echo "sublevelone"
    # Return 2, or break 2 or something :D
}

function main() {
    sublevelone
    echo "This is the part of the code to being avoid executed"
}

main
Run Code Online (Sandbox Code Playgroud)

bash nested function-call

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

Haskell 有隐式模式匹配吗?

拿这个例子:

module Main where

main = print (reverseWords "lol")
  
reverseWords :: String -> [String]  
reverseWords = words
Run Code Online (Sandbox Code Playgroud)

reverseWords函数不是针对任何参数的模式匹配,但函数运行和输出"[lol]"

我在这里有两个问题:

  1. Haskell 如何知道我是否正在words针对 的输入调用函数reverseWords?在这个语法中,看起来我只是在返回函数words

  2. 为什么即使我没有在模式中提供任何输入参数,它也能成功运行reverseWords

syntax haskell function-call

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