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