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

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

NMR 3月前

79 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 DB 身份验证在执行数据库命令时出现错误“用户 '' 登录失败”。这是我的代码:public ReturnData GetDa...

    使用带有托管标识的 Azure SQL DB 身份验证出现错误

    \'用户''登录失败\'

    执行数据库命令时。这是我的代码:

        public ReturnData GetData()
        {
            string connectionString = "Server=database.windows.net,1433;Initial Catalog=Mydatabase;"
            var credential = new DefaultAzureCredential();
            var token = credential.GetToken(new Azure.Core.TokenRequestContext(new[] {"https://database.windows.net/.default" }));
            SqlConnection sqlConnection = new SqlConnection(connectionString);
            sqlConnection.AccessToken = token.Token;
            Database database = new SqlDatabase(sqlConnection.ConnectionString);
            using(DbCommand dbCommand=database.GetStoredProcCommand(DatabaseConstants.Procedure_Name))
            {
                dbCommand.CommandTimeout=3600;
                ((SqlDatabase)database).AddInParameter(dbCommand,DatabaseConstants.D_ATM, DbType.Int32, id);
                DataSet dataSet = database.ExecuteDataSet(dbCommand);  if(dataSet!=null&&dataSet.Tables.Count>0&&dataSet.Tables[0].Rows.Count > 0)
                {
                    DataRow row = dataSet.Tables[0].Rows[0];
                }
            }
        }
    

    还添加了用户级别权限。需要解决此问题。

返回
作者最近主题: