问题列表 - 第43692页

如何在C#中使用C++编写的外部.dll资源上正确创建入口点

长时间读者,第一次海报.有一天,我希望在这里回答问题......

所以它类似于:"无法在dll中找到名为[function]的入口点"(c ++到c#类型转换)

但我似乎无法应用相同的解决方案......

基本上,我写了一个新的方法:

在C++项目的头文件中定义为:

extern "C" {
     __declspec(dllexport) bool IsDataValid();
}
Run Code Online (Sandbox Code Playgroud)

在C++项目的源文件中定义为:(仅限signiature)

extern bool __cdecl IsDataValid() { 
//function stuf......... returns a bool
}
Run Code Online (Sandbox Code Playgroud)

导入C#项目中的表单C#应用程序:

[DllImport("CarChipSDK_C_Sharp.dll", EntryPoint = "IsDataValid")]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool IsDataValid();
Run Code Online (Sandbox Code Playgroud)

它是从C#表单.cs文件中的同一个地方调用的:

bool isDataValid = IsDataValid();
Run Code Online (Sandbox Code Playgroud)

它返回一个带有消息的异常:

"无法找到DLL'CarChipSDK_C_Sharp.dll'中命名的入口点'IsDataValid()'.

我在从c ++代码生成的.dll上使用了dumpbin.exe和dependency walker,它显示它具有IsDataValid()入口点.

非常感谢所有帮助......

问题解决了!愚蠢的我,这是我现在公司以前的合作社的代码,结果他正在从bin/release文件夹中读取.dll,我正在构建bin/debug文件夹.应该知道的.真诚的道歉.

c# c++ dll entry-point

0
推荐指数
1
解决办法
3421
查看次数

存储库模式中的纯POCO实体更新问题

我的UserRepository中有一个问题,我想在其中更新用户.除非指定,否则我不希望更新某些字段,例如密码.例如,当我将用户从视图传递到服务器到存储库时,它会向用户发送空密码或空密码字符串.这个null被写入数据库(我不想要).

我该如何处理这样的情况?

public class User
{
    public int UserId { get; set; }

    public string Email { get; set; }
    public string Password { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

知识库

    public User Save(User user)
    {
        if (user.UserId > 0)
        {
            User dbUser = context.Users.FirstOrDefault(u => u.UserId == user.UserId);
            //What do I do here?
        }
        context.Users.AddObject(user);
        context.SaveChanges();
        return user;
    }
Run Code Online (Sandbox Code Playgroud)

让我们说在这种情况下,我的视图只允许我更改Email,因此唯一被发送回Save()方法的是:user.UserIduser.Emailwhile user.Password是null.在我的情况下,数据库抛出错误,因为密码应该可以为空.

asp.net-mvc entity-framework repository-pattern

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

git对二进制文件好吗?

git对二进制文件好吗?

如果我修改了很多未压缩的文件,并且许多压缩文件从未(或几乎从未)被修改过,那么git会处理得好吗?例如,如果我插入或删除中间并在末尾附近插入数据,它会注意到它与文本一样吗?

如果git对二进制文件不好,我可以考虑使用什么工具?

git

87
推荐指数
6
解决办法
7万
查看次数

Python中的Hopcroft-Karp算法

我正在尝试使用networkx作为图形表示在Python中实现Hopcroft Karp算法.

目前我就是这样:

#Algorithms for bipartite graphs

import networkx as nx
import collections

class HopcroftKarp(object):
    INFINITY = -1

    def __init__(self, G):
        self.G = G

    def match(self):
        self.N1, self.N2 = self.partition()
        self.pair = {}
        self.dist = {}
        self.q = collections.deque()

        #init
        for v in self.G:
            self.pair[v] = None
            self.dist[v] = HopcroftKarp.INFINITY

        matching = 0

        while self.bfs():
            for v in self.N1:
                if self.pair[v] and self.dfs(v):
                    matching = matching + 1

        return matching

    def dfs(self, v):
        if v != None:
            for …
Run Code Online (Sandbox Code Playgroud)

python algorithm graph bipartite graph-algorithm

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

在C#中动态创建Type数组

在C#中,我需要能够在运行时基于逗号分隔的数据类型列表创建一个Type对象数组,这些数据类型作为字符串传递给函数.基本上,这是我想要完成的:

// create array of types
Type[] paramTypes = { typeof(uint), typeof(string), typeof(string), typeof(uint) };
Run Code Online (Sandbox Code Playgroud)

但我需要能够像这样调用我的函数:

MyFunction("uint, string, string, uint");
Run Code Online (Sandbox Code Playgroud)

并让它根据传入的字符串动态生成数组.这是我的第一次尝试:

void MyFunction(string dataTypes)
{
    //out or in parameters of your function.   
    char[] charSeparators = new char[] {',', ' '};
    string[] types = dataTypes.Split(charSeparators,
                        stringSplitOptions.RemoveEmptyEntries);

    // create a list of data types for each argument
    List<Type> listTypes = new List<Type>();
    foreach (string t in types)
    {
        listTypes.Add(Type.GetType(t)); 
    }
    // convert the list to an array
    Type [] paramTypes = listTypes.ToArray<Type>(); …
Run Code Online (Sandbox Code Playgroud)

c# arrays runtime list arraylist

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

在离散时间采样IIR滤波器系统中从采样率/截止频率转换为pi-弧度/采样

我正在使用Python和Numpy/Scipy进行一些数字滤波器工作.

我正在使用scipy.signal.iirdesign来生成我的滤波器系数,但它需要以我不熟悉的格式使用滤波器通带系数

wp, ws : float

  Passband and stopband edge frequencies, normalized from 0 to 1 (1 corresponds 
      to pi radians / sample). 
  For example:
  Lowpass: wp = 0.2, ws = 0.3
  Highpass: wp = 0.3, ws = 0.2
Run Code Online (Sandbox Code Playgroud)

(从这里)

我不熟悉数字滤波器(我来自硬件设计背景).在模拟环境中,我将确定所需的斜率和3db向下点,并从中计算组件值.

在这种情况下,如何获取已知的采样率,所需的转角频率和所需的滚降,并wp, ws从中计算出值?

(这可能更适合math.stackexchange.我不确定)

python signal-processing scipy digital-filter

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

是否可以使用GNUstep将iOS应用程序移植到Windows?(用于学习目的)

我是一个Objective-C新手,他仍然没有Mac,但我仍然想练习这门语言.我听说在非Mac世界中,GNUstep提供了一个很好的Cocoa替代品,可以用作新Objective-c开发人员的学习工具.我的问题是,由于GNUstep移植了很多Cocoa类,我移植iOS游戏及其开发框架的可能性有多大.我在谈论iOS的Canabalt(https://github.com/ericjohnson/canabalt-ios),它基于Flixel框架的iOS版本.我想知道是否有最轻微的机会能够使用GNUstep在Windows上移植和运行此游戏.请记住,这完全是出于教育目的,所以请不要在其中寻找任何实用价值,除了我用ObjC变得更好:)

我想它应该在技术上可行.一般来说,使用GNUstep将任何iOS应用程序移植到Win的可能性是多少?

iphone objective-c gnustep ios

10
推荐指数
1
解决办法
2499
查看次数

SQLServer在存储过程中找不到我的用户定义函数函数

我必须有一些权限错误,但我无法弄清楚如何.以下代码已简化,但我甚至无法使其工作

CREATE FUNCTION ufTest 
(
    @myParm int
)
RETURNS int
AS
BEGIN
    DECLARE @Result int

    SELECT @Result = @myParm + 1

    RETURN @Result
END
GO
Run Code Online (Sandbox Code Playgroud)

然后我只想从存储过程中调用该函数:

CREATE PROCEDURE dbo.[uspGetGroupProfileService]
@id        int
AS
BEGIN
    SET NOCOUNT ON;
    DECLARE @otherId int;
    SET @otherId = dbo.ufTest(@id);
END
Run Code Online (Sandbox Code Playgroud)

SQLServer一直告诉我它无法找到dbo.ufTest.它显示在[DB]\Programmability\Functions\Scalar-valued函数下,但我无法弄清楚如何使用它.

有谁知道我做错了什么?

编辑

如下面所选答案所示,您无法始终信任SSMS Intellisense.除了尝试执行脚本之外,您可以尝试的一件事是使用CTRL + SHIFT + R强制进行Intellisense刷新

https://blog.sqlauthority.com/2013/07/04/sql-server-how-to-refresh-ssms-intellisense-cache-to-update-schema-changes/

sql-server stored-procedures user-defined-functions

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

用R中的双引号替换转义的双引号

我正在使用 RMySQL 将一些 html 代码写入 SQL 数据库(但我想我的问题是一个通用的 R 问题,而不是真正与 SQL 或 RMySQL 相关的问题)。所以我正在尝试这样的事情:

con <- RMySQL(...) # some connection    
html <- "<div style='text-align: center; font-family: Arial;'><span style='font-size: 14pt;'>Some text without any tricky symbols.</span></div>"    
    query <- c('INSERT INTO table (htmlfield) VALUES (\"', html, '"') 
    dbSendQuery(con,paste(query, collapse = ""))
Run Code Online (Sandbox Code Playgroud)

麻烦的是,R 的粘贴会将单引号中的双引号(即 '"')替换为转义序列 \",即:

> paste(query, collapse = "")
[1] "INSERT INTO table (htmlfield) VALUES (\"<div style='text-align: center; font-family: Arial;'><span style='font-size: 14pt;'>Some text without any tricky symbols.</span></div>\""
Run Code Online (Sandbox Code Playgroud)

如果我将向量查询中的单引号更改为双引号,将 html 中的单引号更改为双引号,那么问题就出在字符串 html 的一侧,此后 html …

regex mysql sql r escaping

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

合并两个整数数组

有没有办法从两个中创建一个数组?例如

int[] array1 = {1,2,3};
int[] array2 = {4,5,6};
int[] array1and2 = array1 + array2;
Run Code Online (Sandbox Code Playgroud)

java arrays

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