8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

Winform(.Netcore8)中的 C++ CLR 库(DLL)中的 C4642 警告

NMR 3月前

84 0

我在 .NetCore 8 中使用 Winform 的 C++ CLR DLL 中收到此警告警告 C4642:“IHandle”:无法导入泛型参数“THandle”的约束警告 C4642:“HandleRef”:无法

我在 .NetCore 8 中使用 Winform 的 C++ CLR DLL 中收到此警告

warning C4642: 'IHandle': could not import the constraints for generic parameter 'THandle'
warning C4642: 'HandleRef': could not import the constraints for generic parameter 'THandle'

问题是,即使是一个非常干净的项目,这个警告也只是在默认代码中存在。

以下是我尝试重现警告的步骤和方法。

  1. 创建新项目并选择“CLR 类库 (.NET)”
  2. 通过以下方式添加新表单:添加->新项目-> UI->窗口表单
  3. 打开 .vcxproj 并删除对
    System, 
    System.Data
    System.Drawing
    System.Windows.Forms
    System.Xml

并替换为

<FrameworkReference Include="Microsoft.WindowsDesktop.App.WindowsForms" />

构建并清理,然后出现警告。

事实上,这只是一个单元测试,我们移植的实际项目最初是一个 Winform C++ CLR 应用程序,现在构建为一个 DLL 并有一个 C# 主机以使其与 .netcore 8 一起工作。

可以成功编译并打开。

我们有很多这样的警告,因为到处都有大量的表格。

有什么想法可以解决这个问题吗,或者我们应该抑制这个警告?

帖子版权声明 1、本帖标题:Winform(.Netcore8)中的 C++ CLR 库(DLL)中的 C4642 警告
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由NMR在本站《.net》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 用户无权访问 Azure SQL 服务器,这可能是导致 login failed for user 错误的原因。您可以按照以下步骤使用系统分配的托管身份验证从 Azure Web API 连接 Azure SQL 服务器:

    在 Appsetting.json 中使用以下格式的连接字符串:

    "ConnectionStrings": {
            "QuotesDatabase": "Server=tcp:<servename>.database.windows.net,1433; Database=<databasename>;" }
    
    

    使用以下代码进行连接。

    var connectionString = Configuration.GetConnectionString("<connectionstringname>");
                    services.AddTransient(a =>{
                        var sqlConnection = new SqlConnection(connectionString);
                        var credential = new DefaultAzureCredential();
                        var token = credential
                                .GetToken(new Azure.Core.TokenRequestContext(
                                    new[] { "https://database.windows.net/.default" }));
                        sqlConnection.AccessToken = token.Token;
                        return sqlConnection;
    
    

    根据需要将活动目录管理员设置为 SQL 服务器,如下所示:

    enter image description here

    选择 Azure 服务身份验证的管理员帐户来检索令牌凭据,如下所示:

    enter image description here

    在 Azure 应用服务的状态下启用系统分配的管理标识。

    enter image description here

    使用管理员身份登录 SQL Server,将用户添加到数据库并为用户分配角色

    create user [<appName>] from external provider;
    alter role db_datareader add member [<appName>];
    alter role db_datawriter add member [<appName>];
    
    

    enter image description here

    数据库将成功连接到应用程序,如下所示:

    enter image description here

    欲了解更多信息,你可以参考类似的 SO 线程 .

返回
作者最近主题: