ÐÂÎÅ×ÊѶ

22/05/2020 ×÷Õß ÔÆº£ÓÎÏ·

ʹÓÃCANlib? Visual Studio 2019 C# .NET STANDARD 2.0

ÔÆº£ÓÎÏ· µÄCANlib C# °ü×°Æ÷ÒÑÌí¼Óµ½.NET Standard¡£ÔÚ±¾ÎÄÖУ¬ÎÒ½éÉÜÔÚʹÓÃ¶Ô ¡°.NET CORE¡± ºÍ ¡°.NET Framework¡± ¶¼ÊÊÓõÄNET Standard 2.0. ´´½¨Ò»¸öC#ÏîĿʱ£¬ÈçºÎÔÚVisual Studio 2019Ö줻îCANlib¡£ÔÚÏÖÓÐÏîÄ¿ÖУ¬Ò²¿ÉÒÔʹÓôËÎĵµ¼¤»îCANlib¡£

VS, VS2019, Visual Studio 2019, C# ,dotNET, CORE, netstandard2, x86, x64, win32, win64, anyCPU, dll, CANlib, canlibCLSNET, KVASER

×÷Õß: Lars-G?ran Fredriksson, ÏÖ³¡Ó¦Óù¤³Ìʦ, ÔÆº£ÓÎÏ· AB

°æ±¾: 2019-12-04

±¾ÎÄÊÇ»ùÓÚ²©¿Í: Using CANlib Visual Studio 2017 C#.NET.?

±¾ÎÄÒÑΪ¡°Visual Studio 2019¡±½øÐÐÁËÐÞ¶©£¬ÏÖÔÚչʾÈçºÎʹÓà ¡°.NET Standard 2.0¡± ¿ò¼Ü£¨¼°¸üа汾£©¡£

±¾ÎÄʹÓõÄËõд£º

VS2019 Microsoft Visual Studio 2019 (C# .NET)

CANlib ÔÆº£ÓÎÏ· CANlib SDK

ÔÚ¿ªÊ¼Ö®Ç°...

Ê×ÏÈ£¬ÎÒÃDZØÐëÏÂÔØ²¢°²×°¡°Ôƺ£ÓÎÏ· CANlib SDK¡±ºÍ¡°Ôƺ£ÓÎÏ· WindowsÇý¶¯³ÌÐò¡±¡£

ÔÚ°²×°CANlibÖ®ºó£¬Çë¼ì²éÔÆº£ÓÎÏ· CANlib¡°netstandard2.0¡±µÄ°²×°Î»Öá£

ÔÚÎÒµÄ64λWindows¼ÆËã»úÉÏ£¬ËüÃǰ²×°ÔÚÕâÀ

  • c:\Program Files (x86)\ÔÆº£ÓÎÏ·\Canlib\dotnet\win32\netstandard2.0\

  • c:\Program Files (x86)\ÔÆº£ÓÎÏ·\Canlib\dotnet\x64\netstandard2.0\

Çë¼ÇסËüÃǵÄλÖã¬ÒòΪÄãºÜ¿ì¾Í»áÐèÒªÕâЩÐÅÏ¢¡£

Èç¹ûÄãÒª´´½¨Ò»¸öÖ§³Ö ¡°.NET Framework 4.6¡± »ò¸ü¾É°æ±¾µÄÓ¦Óã¬ÄãÐèҪʹÓà ¡°canlibCLSNET.DLL¡±¡£´ËÁ´½ÓÉϵIJ©¿Í½âÊÍÁËÈçºÎʹÓà ¡°canlibCLSNET.DLL¡±: Using CANlib Visual Studio 2017 C#.NET

Èç¹ûÄãÒѾ­Íê³ÉÕâÒ»²½£¬ÄÇô»¹ÐèÒª°²×° ¡°Microsoft Visual C++ Redistributable for Visual Studio 2015, 2017 and 2019¡±¡£ (Õ⽫×Ô¶¯°²×°£¬Èç¹ûÄãÔÚ°²×°VS2019ʱ°²×°ÁËC++¹¤¾ß¡£)

ÏÖÔÚÎÒÃÇÒÑ×¼±¸ºÃ¿ªÊ¼Visual Studio 2019 (C#)¡£

1£®´´½¨Ò»¸ö¿ÕÏîÄ¿

¿ÉÒÔÓÃÐí¶à²»Í¬µÄ·½·¨ÔÚVSÖд´½¨Ò»¸öÏîÄ¿£»ÕâÊÇÆäÖÐÒ»ÖÖ·½·¨¡£

µã»÷ ¡°File¡± – ¡°New¡± -¡±Project¡­¡±

´´½¨Ò»¸ö ¡°.NET Core¡± »ò ¡°.NET Framework¡± ÏîÄ¿¡£

±à¼­Ãû³ÆºÍÆäËûÐÅÏ¢£¬È»ºóµã»÷ ¡°OK¡±¡£

VS2019 ÏÖÔÚΪÎÒÃÇ´´½¨ÁËÒ»¸öÓ¦ÓóÌÐò¡£

Ëü¿´ÉÏÈ¥ÎÞȤ£¬Ö»ÊÇÒ»¸ö¿Õ¿ò¼Ü£¬Ê²Ã´¶¼²»ÄÜ×ö¡£

2£®Ìí¼ÓÒ»¸öʹÓà CANlib (C#)µÄ±àÂë

ÎÒÃÇÏÖÔÚ½«Ìí¼ÓÒ»¸öʹÓÃCANlibµÄ´úÂ룻ÔÚ±¾ÀýÖУ¬´Ë´úÂëÄÜ×öʲô²¢²»ÖØÒª¡£ÓйØÈçºÎʹÓÃCANlibµÄ¸ü¶àÐÅÏ¢£¬Çë²Î¼ûCANlib SDK Help¡£

2.1 Windows´°ÌåÉè¼ÆÆ÷

´ËÐÅÏ¢ÔÚ2019Äê11ÔÂ15ÈÕÓÐЧ¡£

ÕâÊÇÀ´×Ô΢ÈíµÄÐÅÏ¢:

ÒòΪÕâÊÇ´ËÉè¼ÆÆ÷µÄµÚÒ»´ÎÔ¤ÀÀ£¬ËùÒÔËü»¹Ã»ÓÐÓëVisual StudioÀ¦°óÔÚÒ»Æð£¬¶øÊÇ×÷ΪVisual StudioÀ©Õ¹£¨¡°VSIX¡±£©(download)Ìṩ¡£ÕâÒâζ×Å£¬Èç¹ûÔÚVisual StudioÖдò¿ªÒ»¸öÕë¶Ô.NET CoreµÄWindows´°ÌåÏîÄ¿£¬Ä¬ÈÏÇé¿öÏÂËü½«Ã»ÓÐÉè¼ÆÆ÷Ö§³Ö¨CÄãÐèÒªÊ×ÏȰ²×°. .NET CoreÉè¼ÆÆ÷£¡

Äã¿ÉÒÔÔÚ´Ë´¦ÔĶÁ¸ÃÎÄÕÂÈ«ÎÄ:

Introducing .NET Core Windows Forms Designer Preview 1

2.2±à¼­¸Ã´°Ìå

ÒªÌí¼ÓÒ»¸ö°´Å¥£¨BUTTON£©ºÍÒ»¸öÎı¾¿ò£¨TEXTBOX£©£¬°ÑÎı¾¿òÉ쵀 ¡°Multiline¡± ÊôÐÔ¸ÄΪtrue¡£ (ÎÒ¿¼ÂÇÄã»áÊìϤÔõôÔÚVS2019ÖÐÌí¼Ó²¿¼þ£¬ËùÒÔÎÒ²»ÔÚ´Ë´¦ÑÝʾ)¡£

Äã¿ÉÒÔÔÚÕâÀï¿´µ½ºÜ¶àÐÅÏ¢:

  • Create a Windows Forms App project

  • Windows Forms Designer overview

ÉÔ΢±à¼­Ö®ºó£¬ÎÒÃǵõ½ÁËÒ»¸ö¾«ÖµÄÓ¦ÓÃ:

4.2 ±à¼­´úÂë

ËüÈÔȻʲôҲ²»ÄÜ×ö£¬ËùÒÔÔڱ༭Æ÷ÖУ¬Ë«»÷¡°button1¡±£¬²¢ÔÚ ¡°button1_Click¡± º¯ÊýÖÐÌí¼ÓһЩ´úÂë¡£

private void button1_Click(object sender, EventArgs e)
        {
            Canlib.canStatus R;
            int V;
        
            textBox1.Clear();
            textBox1.Text = "DEMO VS2019\r\n";

            Canlib.canInitializeLibrary();

            V = Canlib.canGetVersionEx(Canlib.canVERSION_CANLIB32_PRODVER32);
            int V1 = (V & 0xFF0000) >> 16;
            int V2 = (V & 0xFF00) >> 8;
            textBox1.Text += string.Format("Found CANlib version {0}.{1}\r\n",V1,V2 );

            R = Canlib.canGetNumberOfChannels(out int NOC);

            textBox1.Text += string.Format("Found {0} channels\r\n", NOC);
            textBox1.Text += "----------------------------------------\r\n";
        }   

µ±ÎÒÊÔÔËÐдËÓ¦ÓÃʱ£¬»áµÃµ½¶à¸ö´íÎó¡£ÓÉÓÚVS2019ÕÒ²»µ½CANlib£¬ËùÒÔ³öÏÖÁËÎÊÌâ¡£

3£®Ìí¼Ó CANlib

ΪÁËÔÚVS2019ÏîÄ¿ÖÐʹÓÃCANlib£¬ÎÒÃDZØÐëÌí¼ÓÐÅÏ¢£¬À´¸æËßVS2019¿ÉÒÔÔںδ¦ÕÒµ½CANlibÎļþ¡£

ÕâÀïÖ»Äܸøx86 »ò x64 °æ±¾CANlibÌí¼ÓÒýÓá£È»¶ø£¬Ö»Òª¶ÔÒ»¸öÎĵµÉÔ΢Ð޸ģ¬ÎÒÃǾͿÉÒÔͬʱ¸øÁ½¸ö°æ±¾Ìí¼Ó¡£ÎÒ»áÉÔºóÔÚ±¾ÎÄÖÐÑÝʾÕâÒ»µã.

ÎÒ½«Ìí¼Ó¶Ôwin32°æ±¾µÄÒýÓᣵ±Ê¹Óá°anyCPU¡±Ê±£¬ÎÒµÄÉ豸ĬÈÏΪx64£¬µ«ËüËÆºõÒÀÈ»¿ÉÒÔ¹¤×÷¡£

ÔÚÎÒÃÇ¿ªÊ¼Ö®Ç°£¬Ñ¡Ôñƽ̨¡°anyCPU¡±£¨¶Ô´Ë¿ÌÀ´Ëµ£¬ÕâÊÇÎÒÔÚ´ËÓ¦ÓóÌÐòÖÐĬÈÏÆôÓõÄΨһƽ̨£©¡£

Ñ¡Ôñ ¡°anyCPU¡± ×÷Ϊƽ̨:

3.1 Ìí¼Ó¡°using ÔÆº£ÓÎÏ·.CanLib;¡±

Èç¹ûÎÒÃÇÒª´´½¨Ò»¸ö ¡°.NET Core¡± »òÕß ¡°.NET Framework¡± (V4.6.1»ò¸üа汾) £¬ÄÇÎÒÃDZØÐëÌí¼Ó:

using ÔÆº£ÓÎÏ·.CanLib;

3.2Ìí¼Ó ¡°Ôƺ£ÓÎÏ·.CanLib¡± ÒýÓÃ

ΪÁËÔÚVS2019ÏîÄ¿ÖÐʹÓÃCANlib£¬ÎÒÃDZØÐëÌí¼ÓÐÅÏ¢À´¸æËßVS2019¿ÉÒÔÔÚÄÇÀïÕÒµ½ ¡°Ôƺ£ÓÎÏ·.CANlib¡±¡£?

ÔÚÎҵĵçÄÔÀÎÒ½ÏÔçµØÕÒµ½Á˸÷¾¶:

¡°c:\Program Files (x86)\ÔÆº£ÓÎÏ·\Canlib\dotnet\win32\netstandard2.0\¡±

ÓÒ¼üµã»÷ ¡°References¡±, È»ºóÑ¡Ôñ ¡°Add Reference¡­¡±:

Ñ¡ÔñÄãÐèÒªµÄDLL£¬È»ºóµã»÷OK¡£ÎÒÑ¡Ôñwin32 °æ±¾¡£

(Èç¹û DLL ²»¿É¼û£¬ÄÇô¾ÍÑ¡Ôñ¡°Browse¡­¡±.)

ÏÖÔÚÎÒÃÇ¿ÉÒÔ¿´µ½ ¡°Ôƺ£ÓÎÏ·.CanLib¡±ÒýÓÃÒÑÌí¼ÓÉÏÁË£º

3.3½¨Á¢Ó¦ÓÃ

Èç¹ûÎÒ½¨Á¢´ËÓ¦Óã¬Ëü¾Í»á¹¤×÷£¡£¨ÓеÄʱºò£©

´Ë¾¯¸æÊÇÕý³£µÄ£¬µ±ÎÒÃÇÏò´ËÏîÄ¿Ìí¼Ó¸ü¶àÐÅÏ¢£¬¾¯¸æ¾Í»áÏûʧ¡£

3.4ÔËÐÐÒ»¸öÓ¦ÓÃ

Èç¹ûÎÒÔËÐдËÓ¦Ó㬲¢µã»÷Button1£¬Îı¾¿òÖн«ÏÔʾһЩÎÄ×Ö£º

´ËÓ¦ÓÿÉÒÔÆô¶¯CANlib£¬¶øÇÒËüÒÑÕÒµ½Ò»Ð©ÊÊÅäÆ÷¡£ËüËÆºõÕý³£¡£

È»¶ø£¬ÓÐʱÎҵõ½Ò»¸ö¾¯¸æ(WARNING)£¬ÓÐʱÎҵõ½Ò»¸ö´íÎó(ERROR)¡£ÎÒ²»Çå³þΪʲôÎÒ»áµÃµ½¾¯¸æ»ò´íÎó£¬ÒòΪÎÒÓ¦¸Ã×ÜÊǵõ½´íÎó¡££¨ÎÒÕýÔÚWIN64 µçÄÔÉÏÔËÐдËÓ¦Ó㬵÷ÓÃwin32 DLL£¬½á¹ûÓ¦¸ÃÊÇÒ»¸ö´íÎó¡£Ò²Ðí±àÒëÆ÷ÊÔͼ¾¯¸æÎÒ¡££©

Õâ¸öСÎÊÌâÓÐÒ»¸ö¼òµ¥µÄ½â¾ö·½°¸£¬ÔÚÎÒÃǽâ¾ö´ËÎÊÌâµÄͬʱ£¬ÎÒÃÇ»¹Ìí¼ÓÁ˶ÔWIN32ºÍWIN64Ó¦ÓóÌÐòƽ̨µÄÖ§³Ö¡£¼ÌÐøÔĶÁ¡­

4ΪWIN32ºÍWIN64¼¤»îCANlib

µ½Ä¿Ç°ÎªÖ¹£¬ÎÒÃÇÒѾ­½«¡°anyCPU¡±×÷ΪĿ±êCPUƽ̨ʹÓá£ÏÖÔÚÎÒÃÇÒª½«ÆäÉèÖÃΪƽ̨£¬ÒÔ±ãΪx86£¨win32£©»òx64£¨win64£©¹¹½¨Ó¦ÓóÌÐò¡£

Ñ¡Ôñ ¡°Configuration Manager¡­¡±:

Ñ¡Ôñ ¡°<New¡­>¡±£¬²¢Ìí¼Óx86ºÍx64:

ÖØÒª:ʹÓà ¡°Project contexts¡±ÖÐµÄ ¡°new¡±, ¶ø²»ÄÜÓà ¡°Active solutions platform¡± ÖеÄÑ¡Ïî¡£

´Ó ¡°anyCPU¡± ¸´ÖÆÉèÖÃ:

ÎÒΪ x86 ºÍ x64 ·Ö±ð×ö´Ë²Ù×÷£¬È»ºó·µ»Øµ½Ö÷IDE£¨¼¯³É¿ª·¢»·¾³£©¡£

5£®²âÊÔx86 ºÍ x64

Ñ¡Ôñ ¡°x86¡± ²¢µã»÷ ¡°Start¡±:

ËüÄܹ¤×÷£¡´ËÓ¦ÓÿªÊ¼ÁË(µ«ÊÇÎҵõ½ÁËÒ»¸ö¾¯¸æ)¡£

Ñ¡Ôñ ¡°x64¡± È»ºóµã»÷ ¡°Start¡±:

Îҵõ½ÁËÒ»¸ö¾¯¸æ£¬µ«ÎÒ±¾À´ÒÔΪ»áµÃµ½Ò»¸ö´íÎó¡£ÕâÊÇÕý³£µÄ£¬²¢½«ÔÚÏÂÒ»½ÚµÃµ½ÐÞÕý¡£

ºÃ£¬ÏÖÔÚÇé¿ö¸ÄÉÆÁ˲»ÉÙ¡£ÎÒÃÇ¿ÉÒÔÑ¡Ôñƽ̨£¬ÓÐʱ»áÊÕµ½¾¯¸æ£¬ÓÐʱµÃµ½Ò»¸ö´íÎó¡£ÎÒÇ°ÃæËµ¹ýÎÒÃÇ»á½â¾öÕâ¸öÎÊÌ⣬ÏÖÔÚ¿´À´Ê±ºòÕýºÏÊÊ¡£

6£®ÎªÔƺ£ÓÎÏ·.CanLib WIN32/WIN64Ñ¡Ôñ·¾¶

ÎÒÏ£ÍûÔÚÎÒ½¨Á¢´ËÏîĿʱ£¬VS2019×Ô¶¯Ñ¡ÔñÕýÈ·µÄÔÆº£ÓÎÏ·.CanLib.dll°æ±¾¡£

ÎÒÕÒµ½ÁËÕâÑù×öµÄÒ»ÖÖ·½·¨(¿ÉÄÜ»¹ÓÐÆäËû·½·¨)¡£

¸ù¾ÝÎÒÃÇ´´½¨µÄÏîÄ¿µÄÖÖÀ࣬ÎÒÃÇʹÓõķ½·¨Ò²»á²»Í¬:

6.1 Adjusting path for ¡°.NET CORE¡± projects

6.2 Adjusting path for ¡°.NETFramework¡± projects

ÔÚ´Ë´¦¿É²é¿´¸ü¶àÐÅÏ¢:

How to: Configure projects to target platforms

6.1Ϊ ¡°.NET CORE¡± ÏîÄ¿µ÷Õû·¾¶

ÎÒÃÇÓ¦¸Ã±à¼­Îļþ ¡°WPF_NET_CORE.csproj¡± (ProjName.csproj)

Ôڱ༭ǰ£¬¸ÃÎļþÊÇÈçÏÂËùʾ:

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
  <PropertyGroup> ....  </PropertyGroup> (Keep original info!)

  <ItemGroup>
    <Reference Include="ÔÆº£ÓÎÏ·.CanLib">
      <HintPath>C:\Program Files (x86)\ÔÆº£ÓÎÏ·\Canlib\dotnet\win32\netstandard2.0\ÔÆº£ÓÎÏ·.CanLib.dll</HintPath>
    </Reference>
  </ItemGroup>

</Project>

±£ÁôËùÓÐԭʼÐÅÏ¢£¬µ«ÕÒµ½¸øÔƺ£ÓÎÏ·.CanLib.dllÌí¼ÓÒýÓõÄ<ItemGroup>

ÏÖÔÚÎÒÃÇÓ¦¸ÃÌí¼ÓһЩÐУ¬ÈçÏÂËùʾ£º

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
  <PropertyGroup> ....  </PropertyGroup> (Keep original info!)

  <ItemGroup>
    <Reference Include="ÔÆº£ÓÎÏ·.CanLib">
      <HintPath>C:\Program Files (x86)\ÔÆº£ÓÎÏ·\Canlib\dotnet\win32\netstandard2.0\ÔÆº£ÓÎÏ·.CanLib.dll</HintPath>
    </Reference>
  </ItemGroup>

  <ItemGroup  Condition=" '$(Platform)' == 'x64' ">
    <Reference Include="ÔÆº£ÓÎÏ·.CanLib">
      <HintPath>C:\Program Files (x86)\ÔÆº£ÓÎÏ·\Canlib\dotnet\x64\netstandard2.0\ÔÆº£ÓÎÏ·.CanLib.dll</HintPath>
    </Reference>
  </ItemGroup>

</Project>

ÎÒÌí¼ÓÁËÒ»¸ö¸½´øÌõ¼þ(x64)µÄItemGroup¡£Èç¹ûÎÒÑ¡Ôñx64×÷Ϊƽ̨£¬´Ë ItemGroup/Reference ½«¸²¸ÇµÚÒ»¸ö ItemGroup/Reference¡£ÔÚ³£¹æ×éÖ®ºóÌí¼Ó´Ë x64 ItemGroup/Reference ·Ç³£ÖØÒª¡£

ÔÚÕâÖ®ºó£¬ÎÒÃÇ×¼±¸ºÃÁ˼ÌÐø: 7 Running on platform x86 and x64?

6.2Ϊ ¡°.NETFramework¡± ÏîÄ¿µ÷Õû·¾¶

ÔÚÎҵĴËÏîÄ¿µÄĿ¼¿òÖУ¬ÓÐÒ»¸öÎÒÃÇÄܱ༭µÄÎļþ:

WPF_NET_FRAMEWORK.csproj.user (%ProjName%.csproj.user)

µ«ÊÇÎÒÕÒ²»µ½Ëü£¡¸ÃÎļþÔÚÄÄÀ

û¹ØÏµ¡£Ö»ÓÐÔÚÄãÐèҪʱ£¬ËüÊÇĬÈÏ´´½¨µÄ¡£

ÈÃÎÒÃÇ¿ªÊ¼´´½¨£¡

´ò¿ª ¡°Project¡± – %ProjName%_Properties (ÔÚ×îÏÂÃæ)

È¥ ¡°Reference Paths£¨ÒýÓ÷¾¶£©¡± Çø£¬È»ºó¼Ó·¾¶µ½:

¡±c:\Program Files (x86)\ÔÆº£ÓÎÏ·\Canlib\dotnet\win32\netstandard2.0\¡±

ÏÖÔÚ£¬±£´æ´ËÏîÄ¿£¬È»ºó¹ØÉÏVS2019¡£

µ±ÎÒÃǼì²éÎÒÃǵÄÏîĿĿ¼£¬ÎÒÃÇÄÜÕÒµ½´ËÎļþ ¡°ProjName.csproj.user¡±¡£

ÎÒÓÃÎÒµÄÎı¾±à¼­Æ÷´ò¿ªËü£¬ÈçÏÂËùʾ:

(Çë×¢Ò⣬´ËÎļþÄܰüº¬ºÜ¶àÐÅÏ¢£¬ËùÒÔÓбØÒª½«Ëü·ÅÔÚ ¡°ReferencePath¡± ÒѶ¨ÒåµÄλÖá£)

?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <ReferencePath>c:\Program Files (x86)\ÔÆº£ÓÎÏ·\Canlib\dotnet\win32\netstandard2.0\</ReferencePath>
  </PropertyGroup>
</Project>

ÎÒÃÇÌí¼ÓÊôÐÔ×é˵Ã÷:

 <PropertyGroup Condition=" '$(Platform)' == 'x64' ">
    <ReferencePath>c:\Program Files (x86)\ÔÆº£ÓÎÏ·\Canlib\dotnet\x64\netstandard2.0\</ReferencePath>
 </PropertyGroup>

ÏÖÔÚÎÒµÄÎļþÈçÏÂËùʾ:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <ReferencePath>c:\Program Files (x86)\ÔÆº£ÓÎÏ·\Canlib\dotnet\win32\netstandard2.0\</ReferencePath>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Platform)' == 'x64' ">
    <ReferencePath>c:\Program Files (x86)\ÔÆº£ÓÎÏ·\Canlib\dotnet\x64\netstandard2.0\</ReferencePath>
  </PropertyGroup>
</Project>

ÎÒÌí¼ÓÁËÒ»¸ö¸½¼Ó (x64)Ìõ¼þµÄPropertyGroup¡£Èç¹ûÎÒÑ¡Ôñx64×÷Ϊƽ̨£¬Õâ¸öÊôÐÔ×齫¸²¸ÇµÚÒ»¸öPropertyGroup¡£ÔÚ³£¹æ×éÖ®ºóÌí¼Ó´Ë x64 ×é·Ç³£ÖØÒª¡£

7. ÔÚx86ºÍx64ƽ̨ÉÏÔËÐÐ

ÎÒÃÇÏÖÔÚÄÜÑ¡Ôñx86 (win32)ºÍx64 (win64)×÷Ϊ»îԾƽ̨¡£ÔÚÕâÁ½ÖÖÇé¿öÏ£¬´ËÓ¦ÓÃÕýÈ·Æô¶¯£¬¿É»ñÈ¡CANlib²¢ÔËÐÐÕý³£¡£

 

ÎÒÃÇÏÖÔÚÒѾ­ÔÚVisual Studio 2019Ö줻îÁËCANlib, ´´½¨ÁËÒ»¸öC# ÏîÄ¿(ÊÊºÏ .NET Framework ºÍ Netstandard) £¬²¢ÔÚΪx86ºÍx64¶ÔËü×öÁ˲âÊÔ¡£

¦¯¦¥¦¤? (Q.E.D. Quod erat demonstrandum)

8£®Ë¼¿¼ºÍ³£¼ûÎÊÌâFAQ

µ±ÎÒÑ¡ÔñanyCPU×÷Ϊƽ̨ʱ£¬ÎÒ»áÊÕµ½¾¯¸æ»ò´íÎó£¡

µ±¼ÆËã»úÆô¶¯Visual Studioʱ£¬Èç¹ûÎÒÑ¡ÔñÁËanyCPU£¬Èí¼þ½«¾ö¶¨ÊÇʹÓÃ32λ»¹ÊÇ64λ°æ±¾µÄDLL¡£Êǵģ¬anyCPU Ò²Ðí¶¼¿ÉÒÔ£¬µ«ÊÇÈç¹ûÎÒÔÚÁíһ̨É豸ÉÏÔËÐÐÒÑ´´½¨µÄÓ¦ÓóÌÐò£¬µ±ÉèÖò»Í¬£¬Ëü¿ÉÄܲ»»áÔËÐС£

£¨Ñ¡Ôñ¼ÓÔØDLL¿ÉÄÜÐУ¬Çë²é¿´´ËÍⲿÁ´½ÓÁ˽â¸ü¶àÏêÇ飺https://stackoverflow.com/questions/108971/using-side-by-side-assemblies-to-load-the-x64-or-x32-version-of-a-dll)

8.2×ȫµÄÉèÖÃ??

Èç¹ûÎÒÑ¡x86 (WIN32)¹¹½¨µÄÓ¦Óã¬ËüÔÚWIN32ºÍWIN64 É豸ÉϾù¿ÉÔËÐС£

8.3 ÎÒÐèÒªx64Âð?

Èç¹ûÄãµÄÓ¦ÓÃÐèÒªËü£¬CANlib ÄÜÔËÐе÷dz£ÀíÏ룬µ«½öÏÞWIN64 É豸¡£È»¶ø£¬½ñÌì (2019), ¶àÊýWindowsµçÄÔÓÃWIN64¡£

8.4 Microsoft Visual C++ºÍÔÆº£ÓÎÏ·.CanLib Redistributable

µ±ÔÚÁíһ̨»úÆ÷Éϰ²×°ÄãµÄÓ¦ÓóÌÐò£¨¿ÉÄÜ»¹Ã»Óа²×°VisualStudio£©Ê±£¬Çë¼Çס֨зַ¢£¨²¢°²×°£©¡°Microsoft Visual C++ Redistributable for Visual Studio 2019¡±¡£ÄãÐèÒª½«Ôƺ£ÓÎÏ·.CanLib.dll£¨x86ºÍ/»òx64£©ÓëÏîÄ¿¿ÉÖ´ÐÐÎļþÒ»Æð¸´ÖÆ¡£ÕâЩdll²»ÊÇ×÷ΪÇý¶¯³ÌÐòµÄÒ»²¿·Ö°²×°µÄ£¨ËüÃÇÊÇKVASER CANlib SDKµÄÒ»²¿·Ö£©¡£

ллÄãÔĶÁ±¾ÎÄ£¡Èç¹ûÄã¶Ô±¾ÎÄÓÐÈκÎÒÉÎÊ»òÒâ¼û£¬Çë·¢ËÍÓʼþÖÁSUPPORT@KVASER.COM.?

¡¾ÍøÕ¾µØÍ¼¡¿¡¾sitemap¡¿