Is there anyone on the official website who is willing to submit this?
Hi,everyone, Is there anyone on the official website who is willing to submit this? If you can submit, the development of D language is a good thing. "https://open.soft.360.cn/regist.php; "link.exe" and "optlink.exe" found the Trojan virus: - Type: "Trojan-HEUR/QVM19.1.A5B9.Malware.Gen" Description: Trojan is a malware disguised as a normal file that steals your account, password, and other private information. Scan Engine: Cloud Feature Engine File path: "...link.exe" File size: (230,472 bytes) Document fingerprint "(MD5)": "5c092ecec3788eb7f7df2673dcbd6f5c" Digital Signature: D Language Foundation Is the digital signature valid: valid Handling suggestions: quarantine files -- Does anyone know what is going on? Is there anyone on the official website who is willing to submit this? If you can submit, the development of D language is a good thing. "https://open.soft.360.cn/regist.php; Thank you.
Re: How to test that the IP port is reachable?
On Saturday, 6 April 2019 at 03:24:04 UTC, FrankLike wrote: Hi,everyone,... Do you have some better code than this? import std.stdio; import std.socket; void main() { testIPPort(); } bool testIPPort() { try { auto results = getAddressInfo("127.0.0.1",AddressInfoFlags.NUMERICHOST); auto sock = new Socket(results[0]); auto address = getAddress("127.0.0.1",8080); sock.connect(address[0]); writeln(address," connect ok"); return true; } catch(SocketException e) { return false; } } --- Thanks.
How to test that the IP port is reachable?
Hi,everyone, How to test that the IP port is reachable? In C,you can do this like that, what should I do in D? /* C Code*/ https://blog.csdn.net/zhangyingchuang/article/details/51957552 #include #include #include #include #include /* inet(3) functions */ #define bool int #define false 0 #define true 1 bool checkIPandPort(const char* ip, const char* port) { struct sockaddr_in addr; int fd = socket(AF_INET, SOCK_STREAM, 0); memset(, 0, sizeof(addr)); addr.sin_family = AF_INET; addr.sin_port = htons(atoi(port)); addr.sin_addr.s_addr = inet_addr(ip); if (connect(fd, (struct sockaddr *) , sizeof(struct sockaddr)) < 0) { printf("connect error \n"); return false; } return true; } -- But how to do it in D? Thanks.
Re: How can I express the type of a function in D?
On Wednesday, 30 January 2019 at 05:40:50 UTC, FrankLike wrote: On Wednesday, 30 January 2019 at 05:14:20 UTC, Sobaya wrote: I want to get a mangled name of a D function by `core.demangle.mangle`, but I'm in trouble because there are no ways to express a type of a function, which is used for a template argument of `mangle`. For example, it is wrong to use the type `int function(int,int)` to express the type of `int add(int,int)`. Because it expresses the type of a function POINTER, not just a function. The fuction name in a binary compiled this function is "_D3addFiiZi", but `mangle!(int function(int,int))("add")` returns "_D3addPFiiZi", which includes "P" meaning POINTER. How can I get the former one? Thanks. import std.stdio; import std.process:executeShell; import core.demangle; void main() { assert(mangle!(int function(int))("a.b") == "_D1a1bPFiZi"); executeShell("pause"); } CODE END// Yes,"_D1a1bPFiZi",which includes "P".
Re: How can I express the type of a function in D?
On Wednesday, 30 January 2019 at 05:14:20 UTC, Sobaya wrote: I want to get a mangled name of a D function by `core.demangle.mangle`, but I'm in trouble because there are no ways to express a type of a function, which is used for a template argument of `mangle`. For example, it is wrong to use the type `int function(int,int)` to express the type of `int add(int,int)`. Because it expresses the type of a function POINTER, not just a function. The fuction name in a binary compiled this function is "_D3addFiiZi", but `mangle!(int function(int,int))("add")` returns "_D3addPFiiZi", which includes "P" meaning POINTER. How can I get the former one? Thanks. import std.stdio; alias int* PINT; void main() { auto x= Add(1,2); writeln(x); writeln(); executeShell("pause"); } private PINT Add(int a,int b) { return cast(PINT)(a+b); } CODE END// It works ok.
Re: What is the alternative to the setlocale function of c in D? Thank you.
On Sunday, 27 January 2019 at 10:44:04 UTC, John Chapman wrote: On Sunday, 27 January 2019 at 06:14:15 UTC, FrankLike wrote: On Saturday, 26 January 2019 at 09:33:33 UTC, John Chapman wrote: What has that code got to do with setting the console's font? So you need to add more code to accomplish that. You don't need to set the font to achieve the goal, why not? This should work: const(char)[] toCodePage(const(char)[] s, uint codePage = 0) { import core.sys.windows.winnls, std.utf; foreach (char c; s) { if (c >= 0x80) { auto temp = s.toUTF16z(); char[] result; if ((result.length = WideCharToMultiByte(codePage, 0, temp, -1, null, 0, null, null)) != 0) WideCharToMultiByte(codePage, 0, temp, -1, result.ptr, cast(int)result.length, null, null); return result; } } return s; } void main() { import core.sys.windows.wincon, std.stdio; SetConsoleOutputCP(936); // Simplified Chinese codepage writeln("字符".toCodePage(936)); } Yes. extern(C) int setlocale(int,char*); static this() { import core.stdc.wchar_; import core.stdc.stdio; fwide(core.stdc.stdio.stdout,1); setlocale(0,cast(char*)"china"); } /// it's simple than yours,and don't need convert every string,why not work after D2.0.78.1?
Re: What is the alternative to the setlocale function of c in D? Thank you.
On Saturday, 26 January 2019 at 09:33:33 UTC, John Chapman wrote: What has that code got to do with setting the console's font? So you need to add more code to accomplish that. You don't need to set the font to achieve the goal, why not?
Re: What is the alternative to the setlocale function of c in D? Thank you.
On Friday, 25 January 2019 at 16:14:56 UTC, Kagamin wrote: also http://blogs.microsoft.co.il/pavely/2009/07/23/changing-console-fonts/ That's so much code than next code! / extern(C) int setlocale(int,char*); static this() { import core.stdc.wchar_; import core.stdc.stdio; fwide(core.stdc.stdio.stdout,1); setlocale(0,cast(char*)"china"); } / After D2.078.1,it's not work. why? thank you.
Re: What is the alternative to the setlocale function of c in D? Thank you.
On Friday, 25 January 2019 at 15:05:50 UTC, John Chapman wrote: On Friday, 25 January 2019 at 14:23:15 UTC, FrankLike wrote: I need to set the font by the code now, because I need to do the installer, can't let this installer set the properties on each computer? SetCurrentConsoleFontEx perhaps? https://docs.microsoft.com/en-us/windows/console/setcurrentconsolefontex That's so much code than next code. /// extern(C) int setlocale(int,char*); static this() { import core.stdc.wchar_; import core.stdc.stdio; fwide(core.stdc.stdio.stdout,1); setlocale(0,cast(char*)"china"); } /// But After D2.078.1,it's not work. Why? Thank you.
Re: What is the alternative to the setlocale function of c in D? Thank you.
On Friday, 25 January 2019 at 08:41:23 UTC, Kagamin wrote: Create a shortcut to cmd.exe and edit its properties. The console window itself has a system menu for this too. I known that. I need to set the font by the code now, because I need to do the installer, can't let this installer set the properties on each computer? Thank you.
Re: What is the alternative to the setlocale function of c in D? Thank you.
On Thursday, 24 January 2019 at 12:19:44 UTC, Kagamin wrote: Try workarounds here: https://issues.dlang.org/show_bug.cgi?id=1448 https://issues.dlang.org/show_bug.cgi?id=2742 How do I set the font? Please.
Re: What is the alternative to the setlocale function of c in D? Thank you.
On Thursday, 24 January 2019 at 12:19:44 UTC, Kagamin wrote: Try workarounds here: https://issues.dlang.org/show_bug.cgi?id=1448 https://issues.dlang.org/show_bug.cgi?id=2742 Ok,thank you. import std.stdio; import core.sys.windows.windows; import std.process:executeShell; extern(Windows) bool SetConsoleOutputCP(uint); void main() { SetConsoleOutputCP(65001); writeln("字符"); executeShell("pause"); }
Re: What is the alternative to the setlocale function of c in D? Thank you.
On Thursday, 24 January 2019 at 07:48:44 UTC, FrankLike wrote: Hi,everyone, for example: import std.stdio; import std.process:executeShell; extern(C) int setlocale(int,char*); static this() { import core.stdc.wchar_; import core.stdc.stdio; fwide(core.stdc.stdio.stdout,1); setlocale(0,cast(char*)"china"); } void main() { writeln("字符"); executeShell("pause"); } ///code end/ In D2.078.1 It can display Chinese characters correctly! But After D2.080 , but it can't be used now. Who can help me? Thank you.
What is the alternative to the setlocale function of c in D? Thank you.
Hi,everyone, for example: import std.stdio; import std.process:executeShell; extern(C) int setlocale(int,char*); static this() { import core.stdc.wchar_; import core.stdc.stdio; fwide(core.stdc.stdio.stdout,1); setlocale(0,cast(char*)"china"); } void main() { writeln("字符"); executeShell("pause"); } ///code end/ In D2.078.1 It works very ok. But After D2.080 ,It not works. Who can help me? Thank you.
Re: How to ensure string compatibility In D?
On Wednesday, 23 January 2019 at 14:12:09 UTC, Jonathan M Davis wrote: On Wednesday, January 23, 2019 5:42:55 AM MST FrankLike via std.conv.to will allow you to convert between string and wstring, but for calling C functions, you still need the strings to be zero-terminated unless the function specifically takes an argument indicating the number of characters in the string. Strings in D are not zero-terminated, so std.conv.to is not going to produce strings that work with C functions. std.conv.to and std.utf.toUTFz solve different problems. [...] Thank you.
Re: How to ensure string compatibility In D?
On Wednesday, 23 January 2019 at 10:44:51 UTC, Jonathan M Davis wrote: On Tuesday, January 22, 2019 2:49:00 PM MST bauss via Digitalmars-d-learn wrote: toUTFz is the generic solution. toStringz exists specifically Error: template std.utf.toUTFz cannot deduce function from argument types !()(string), candidates are: E:\D\DMD2\WINDOWS\BIN\..\..\src\phobos\std\utf.d(3070): std.utf.toUTFz(P) I have solved the problem in this way: import core.sys.windows.windows; import std.stdio; import std.string; import std.conv; void main() { autostrA_Z ="CD"w; auto type = GetDriveType(tos(to!wstring(strA_Z[0])~":\\")); writeln(to!wstring(strA_Z[0])~" is ",type); } private auto tos(T)(T str) { version (ANSI) { writeln("ANSI"); return cast(const(char)*)(str); } else { writeln("Unicode"); return cast(const(wchar)*)(str); } } Thanks.
Re: How to ensure string compatibility In D?
On Tuesday, 22 January 2019 at 21:49:00 UTC, bauss wrote: On Tuesday, 22 January 2019 at 19:14:43 UTC, Jonathan M Davis Is there a reason we cannot implement toStringz like: immutable(TChar)* toStringz(TChar = char)(scope const(TChar)[] s) @trusted pure nothrow; // Couldn't find a way to get the char type of a string, so couldn't make the following generic: immutable(char)* toStringz(return scope string s) @trusted pure nothrow; immutable(wchar)* toStringz(return scope wstring s) @trusted pure nothrow; immutable(dchar)* toStringz(return scope dstring s) @trusted pure nothrow; For example: ///start/// import core.sys.windows.windows; import std.stdio; import std.string; import std.conv; void main() { autostrA_Z ="CD"w; auto type = GetDriveType(tos(to!wstring(strA_Z[0])~":\\")); writeln(to!wstring(strA_Z[0])~" is ",type); } private auto tos(T)(T str) { version (ANSI) { writeln("ANSI"); return cast(const(char)*)(str); } else { writeln("Unicode"); return cast(const(wchar)*)(str); } } ///end/ It's work ok.
Re: How to ensure string compatibility In D?
On Tuesday, 22 January 2019 at 21:49:00 UTC, bauss wrote: On Tuesday, 22 January 2019 at 19:14:43 UTC, Jonathan M Davis Is there a reason we cannot implement toStringz like: immutable(TChar)* toStringz(TChar = char)(scope const(TChar)[] s) @trusted pure nothrow; // Couldn't find a way to get the char type of a string, so "core.sys.windows.windows.winbase",it's implementation is a good choice. couldn't make the following generic: immutable(char)* toStringz(return scope string s) @trusted pure nothrow; immutable(wchar)* toStringz(return scope wstring s) @trusted pure nothrow; immutable(dchar)* toStringz(return scope dstring s) @trusted pure nothrow; For example: /START// import core.sys.windows.windows; import std.stdio; import std.string; import std.conv; void main() { autostrA_Z ="CD"w; auto type = GetDriveType((to!wstring(strA_Z[0])~":\\"w).tos); writeln(to!wstring(strA_Z[0])~" is ",type); } private auto tos(wstring str) { version (ANSI) { writeln("ANSI"); return cast(const(char)*)(str); } else { writeln("Unicode"); return cast(const(wchar)*)(str); } } private auto tos(string str) { version (ANSI) { writeln("ANSI"); return cast(const(char)*)(str); } else { writeln("Unicode"); return cast(const(wchar)*)(str); } } /END// It's work ok.
Re: How to ensure string compatibility In D?
On Tuesday, 22 January 2019 at 16:18:17 UTC, Adam D. Ruppe wrote: Use "mystring"w, notice the w after the closing quote. Or toStringz is not work like c_str() in C++?
Re: How to ensure string compatibility In D?
On Tuesday, 22 January 2019 at 16:18:17 UTC, Adam D. Ruppe wrote: Use "mystring"w, notice the w after the closing quote. "GetDriveType" Function is auto work by "_T" in C++,but how to do in D?
Re: How to ensure string compatibility In D?
On Tuesday, 22 January 2019 at 16:13:57 UTC, FrankLike wrote: On Tuesday, 22 January 2019 at 14:07:48 UTC, Olivier Pisano wrote: Some error is in "core.sys.windows.windows"? Thank you.
Re: How to ensure string compatibility In D?
On Tuesday, 22 January 2019 at 14:07:48 UTC, Olivier Pisano wrote: On Tuesday, 22 January 2019 at 13:55:30 UTC, FrankLike wrote: In D, there is only Unicode. The language doesn't manipulate strings encoded in Windows local code-pages. For example: std::wstring strTest(_T("d://")); UINT nRes = ::GetDriveType(strTest.c_str()); It can work in C++. But: //here is work ok/// import std.stdio; import std.string; import std.conv; import win32.winbase; void main() { string strA_Z ="CD"; auto type = GetDriveType((to!string(strA_Z[0])~":\\").toStringz); writeln(to!string(strA_Z[0])~" is ",type); } //here is work error// import core.sys.windows.windows; import std.stdio; import std.string; import std.conv; void main() { string strA_Z ="CD"; auto type = GetDriveType((to!string(strA_Z[0])~":\\").toStringz); writeln(to!string(strA_Z[0])~" is ",type); } //---Error Info// slicea2.d(9): Error: function core.sys.windows.winbase.GetDriveTypeW(const(wchar )*) is not callable using argument types (immutable(char)*) slicea2.d(9):cannot pass argument toStringz(to(strA_Z[0]) ~ ":\\") of ty pe immutable(char)* to parameter const(wchar)* Some error is "core.sys.windows.windows"? Thank you.
How to ensure string compatibility In D?
Hi,everyone, In C++, _T can guarantee that when converting from ascii encoding type to unicode encoding type, the program does not need to be modified. What do I need to do in D? Thanks.
Re: Who can stop it ? Help me,thank you.
On Wednesday, 17 October 2018 at 13:50:03 UTC, Stanislav Blinov wrote: On Wednesday, 17 October 2018 at 13:48:04 UTC, FrankLike wrote: What can I do? Delete the bloatware that you downloaded. Where can get the new dmd or ldc2 that's no 'Trojan horse virus' ?
Who can stop it ? Help me,thank you.
Hi,teacher: I like D lang,when I download the soft from http://www.360totalsecurity.com/en/, but I find, the link.exe of dmd or ldc2,all have the ‘Trojan horse virus’. dmd.2.082.1.windows.7z:HEUR/QVM19.1.92C9.Malware.Gen file MD5:91ce2a59f06151902a1f3fc49e0a4752 ldc2-7e9db717-windows-x64.7z: HEUR/QVM202.0.92C9.Malware.Gen file MD5:9535728d583e950ea446599b2018cbbd It let me not to use them. What can I do? Help me. Thank you.
Re: How to compile C++ and D code, and linking them together on Windows,I will use c++ function In D? Thanks.
On Sunday, 25 February 2018 at 15:38:31 UTC, FrankLike wrote: Hi,everyone, How to compile C++ and D code, and linking them together on Windows ? I will use c++ function In D. I use vs2010 c++ on Windows, What should I do? For example: 1. create 2 files: C++.cpp D.d 2. I get the C++.obj fiel by vs2010. 3. I get the D.obj by dmd -c -m32mscoff Then how to link? use Dmd's link or VC's link? Now I use the VC's link,and dmd -c -m32mscoff.but get the error:phobos32mscoff.lib<...>:error LNK2001 Total 187 errors. Thanks. I've done it by myself. Through ‘LINK’ each *.obj from D or C++,if there is no problem,linking them together,add parameters:/NODEFAULTLIB:libcmt.lib ,and not use /LTCG. Ok.
Re: Help using lubeck on Windows
On Sunday, 25 February 2018 at 14:26:24 UTC, Arredondo wrote: On Friday, 23 February 2018 at 18:29:09 UTC, Ilya Yaroshenko wrote: full days now. All the .lib/.a files I have tried for BLAS and to do: dmd -L .\openblas.lib put the lib file in your code path. Error 42: Symbol Undefined _cblas_dgemm Error 42: Symbol Undefined _cblas_dger Error: linker exited with status 2
How to compile C++ and D code, and linking them together on Windows, I will use c++ function In D? Thanks.
Hi,everyone, How to compile C++ and D code, and linking them together on Windows ? I will use c++ function In D. I use vs2010 c++ on Windows, What should I do? For example: 1. create 2 files: C++.cpp D.d 2. I get the C++.obj fiel by vs2010. 3. I get the D.obj by dmd -c -m32mscoff Then how to link? use Dmd's link or VC's link? Now I use the VC's link,and dmd -c -m32mscoff.but get the error:phobos32mscoff.lib<...>:error LNK2001 Total 187 errors. Thanks.
Where can get the strsafe.d by strsafe.h ? Thanks.
Hi,everyone, Now,I use some code in strsafe.h,but where can get the strsafe.d ? Thanks.
Re: How to convert C macro to D? Thanks.
On Saturday, 24 February 2018 at 13:57:27 UTC, Adam D. Ruppe wrote: On Saturday, 24 February 2018 at 13:50:16 UTC, FrankLike wrote: #define IOCTL_NDIS_QUERY_GLOBAL_STATS _NDIS_CONTROL_CODE(0, METHOD_OUT_DIRECT) auto IOCTL_NDIS_QUERY_GLOBAL_STATS () { return _NDIS_CONTROL_CODE(0, METHOD_OUT_DIRECT); } Sorry. I look for 'IOCTL_DISK_GET_DRIVE_GEOMETRY' in core.sys.windows.winioctl.d,then I know : enum :DWORD IOCTL_NDIS_QUERY_GLOBAL_STATS = CTL_CODE_T!(FILE_DEVICE_PHYSICAL_NETCARD, 0, METHOD_OUT_DIRECT, FILE_ANY_ACCESS); It's ok. Thank you.
How to convert C macro to D? Thanks.
Hi,everyone, I can convert some simple C macros, but a bit more complicated will need your help. For example: #define _NDIS_CONTROL_CODE(request,method) \ CTL_CODE(FILE_DEVICE_PHYSICAL_NETCARD, request, method, FILE_ANY_ACCESS) #define IOCTL_NDIS_QUERY_GLOBAL_STATS _NDIS_CONTROL_CODE(0, METHOD_OUT_DIRECT) use alias or enum,how to do? Thanks.
Re: How to use strip or stripRight on char[len] ? Thanks.
On Thursday, 22 February 2018 at 18:02:11 UTC, Adam D. Ruppe wrote: You don't strip that at all, the function writes a zero-terminated string to the buffer. Thank you very much ! I forgot it.
Re: How to use strip or stripRight on char[len] ? Thanks.
On Thursday, 22 February 2018 at 16:59:40 UTC, Adam D. Ruppe wrote: On Thursday, 22 February 2018 at 16:55:14 UTC, FrankLike wrote: char[100] abc ="aabc"; auto abcaa = ((abc).dup).stripRight; try: auto abcaa = stripRight(abc[]) Now,I want to get the result: char[100] Path; writeln("will get path "); SHGetSpecialFolderPath(NULL,cast(char*)Path.ptr,CSIDL_DESKTOP,0); if use char[] Path; It not get the result. How to strip the Path? Thanks.
Re: How to use strip or stripRight on char[len] ? Thanks.
On Thursday, 22 February 2018 at 17:08:14 UTC, FrankLike wrote: On Thursday, 22 February 2018 at 16:59:40 UTC, Adam D. Ruppe wrote: On Thursday, 22 February 2018 at 16:55:14 UTC, FrankLike wrote: It is simply that these functions require a slice so it can resize it and you can't resize a static array. char[100] abc ="aabc"; char[] p = abc; string aa = to!string(p); string aaa = aa.stripRight; It get the same result too.
Re: How to use strip or stripRight on char[len] ? Thanks.
On Thursday, 22 February 2018 at 16:59:40 UTC, Adam D. Ruppe wrote: On Thursday, 22 February 2018 at 16:55:14 UTC, FrankLike wrote: It is simply that these functions require a slice so it can resize it and you can't resize a static array. char[100] abc ="aabc"; string aa = to!string(abc); string aaa = aa.stripRight; It get the same result.
How to use strip or stripRight on char[len] ? Thanks.
Hi,everyone, How to use strip or stripRight on char[len]? For example: string abcs ="aabc"; auto abcsaa = abcs.stripRight; writeln(abcsaa); writeln("---abcsaa--stripRight ok "); char[100] abc ="aabc"; auto abcaa = ((abc).dup).stripRight; writeln(abcaa); writeln("stripRight error- "); Where is error? Thanks.
Re: How to use Com object (it comes from other dll) in D? Thanks.
On Thursday, 22 February 2018 at 13:15:11 UTC, rikki cattermole wrote: On 23/02/2018 2:12 AM, FrankLike wrote: IShellLink* pLink; IPersistFile* ppf; Reminder classes in D are already references, no need for pointers to them. Ok,I delete the pointers ,It's ok! Thank you very much!
Re: How to use Com object (it comes from other dll) in D? Thanks.
On Thursday, 22 February 2018 at 13:15:11 UTC, rikki cattermole wrote: Reminder classes in D are already references, no need for pointers to them. Thank you,but get the same error. [D CODE] if(lpszLnkFileDir is null) return; HRESULT hr; IShellLink pLink; IPersistFile ppf; hr = CoCreateInstance(CLSID_ShellLink,NULL, CLSCTX_INPROC_SERVER,IID_IShellLinkA,pLink);//cast(PVOID*) DisplayInfoWork("CoCreateInstance "); if(FAILED(hr)) { DisplayInfoWork("FAILED(hr) "); return ; } DisplayInfoWork(" pLink is "~pLink.to!string); DisplayInfoWork("will QueryInterface hr is "~hr.to!string); DisplayInfoWork(IID_IPersistFile.to!string); hr = pLink.QueryInterface(IID_IPersistFile, ppf);// err <- DisplayInfoWork("pLink.QueryInterface "); ---log info-- CoCreateInstance pLink is 5E9954 will QueryInterface hr is 0 const(GUID)(267, 0, 0, [192, 0, 0, 0, 0, 0, 0, 70]) Access Violation ---end Thanks.
How to use Com object (it comes from other dll) in D? Thanks.
Hi,everyone, I want use the Com object (it comes from other dll) in D,but the core.sys.windows.objidl:QueryInterface Fuction not work. For example: import core.sys.windows.windef; import core.sys.windows.basetyps; import core.sys.windows.uuid; import core.sys.windows.com; import core.sys.windows.objbase:CoInitialize,CoUninitialize,CoCreateInstance; import core.sys.windows.objidl;//:QueryInterface import core.sys.windows.shlobj;//:IShellLink import core.sys.windows.unknwn; if(lpszLnkFileDir is null) return; HRESULT hr; IShellLink* pLink; IPersistFile* ppf; hr = CoCreateInstance(_ShellLink,NULL, CLSCTX_INPROC_SERVER,_IShellLinkA,cast(PVOID*));//cast(PVOID*) writeln("CoCreateInstance "); if(FAILED(hr)) { writeln("FAILED(hr) "); return ; } writeln(" pLink is "~pLink.to!string); writeln("will QueryInterface hr is "~hr.to!string); writeln(IID_IPersistFile.to!string); hr = pLink.QueryInterface(_IPersistFile, cast(PVOID*));// err <- writeln("pLink.QueryInterface "); - It stops in 'hr = pLink.QueryInterface(_IPersistFile, cast(PVOID*));' But the same c++ code is ok. Who can help me? Thanks.
Re: How to convert hex string to string or ubytes? Thanks.
On Monday, 5 February 2018 at 10:04:10 UTC, Seb wrote: On Monday, 5 February 2018 at 08:41:43 UTC, FrankLike wrote: auto input = cast(string)hexString(hash); Use toHexString to get the string: Sorry,'hexString(hash)' is my clerical error. Thank you.I got the answer "no array".
Re: How to convert hex string to string or ubytes? Thanks.
On Monday, 5 February 2018 at 09:45:11 UTC, tetyys wrote: On Monday, 5 February 2018 at 08:41:43 UTC, FrankLike wrote: Casting unknown bytes to string or char is unsafe, and obviously some bytes can be invalid UTF8 sequences. Thank you.I got my error.
Re: How to convert hex string to string or ubytes? Thanks.
On Monday, 5 February 2018 at 06:12:22 UTC, H. S. Teoh wrote: On Mon, Feb 05, 2018 at 05:48:00AM +, FrankLike via auto input = "48656c6c6f20776f726c6421"; auto str = input.chunks(2) .map!(digits => cast(char) digits.to!ubyte(16)) .array; But,if the input come from here: import std.digest.md; auto hash =md5Of("Some Words"); auto input = cast(string)hexString(hash); auto str = input.chunks(2) .map!(digits => cast(char) digits.to!ubyte(16)) .array; Then get an error: core.exception.UnicodeException@src\rt\util\utf.d(292):invalid UTF-8 sequence -- 0x0041B8E6 0x00419530 0x0040796F Thanks.
Re: How to convert hex string to string or ubytes? Thanks.
On Monday, 5 February 2018 at 06:12:22 UTC, H. S. Teoh wrote: On Mon, Feb 05, 2018 at 05:48:00AM +, FrankLike via auto input = "48656c6c6f20776f726c6421"; auto str = input.chunks(2) .map!(digits => cast(char) digits.to!ubyte(16)) .array; But,if the input come from here: import std.digest.md; auto hash =md5Of("Some Words"); auto input = hexString(hash); auto str = input.chunks(2) .map!(digits => cast(char) digits.to!ubyte(16)) .array; Then get an error: core.exception.UnicodeException@src\rt\util\utf.d(292):invalid UTF-8 sequence -- 0x0041B8E6 0x00419530 0x0040796F Thanks.
Re: How to convert hex string to string or ubytes? Thanks.
On Monday, 5 February 2018 at 06:12:22 UTC, H. S. Teoh wrote: On Mon, Feb 05, 2018 at 05:48:00AM +, FrankLike via assert(str == "Hello world!"); Thanks.very good!
How to convert hex string to string or ubytes? Thanks.
Now,I can get the string from hex string in compile time,but how to get it in run time? How to get it in run time? Thanks.
Re: Where can get the Number Convert module?Thanks.
On Sunday, 14 January 2018 at 03:49:05 UTC, Jonathan M Davis wrote: I get the result "1000" from byte[] byteData =[0,0,0,8]; Thank you very much. Good to hear. On a side note, I would point out that you almost certainly want to be using ubyte and not byte. byte is signed, whereas ubyte is unsigned. So, if you want to represent bytes of memory rather than an integral value between 1 and 127, then you want ubyte. - Jonathan M Davis Thank you.
Re: Where can get the Number Convert module?Thanks.
On Sunday, 14 January 2018 at 03:28:28 UTC, FrankLike wrote: On Sunday, 14 January 2018 at 03:09:40 UTC, Jonathan M Davis wrote: On Sunday, January 14, 2018 02:41:39 FrankLike via Digitalmars-d-learn wrote: [...] I'd suggest looking at [...] I get the result "1000" from ubyte[] byteData =[0,0,0,8]; Thank you very much.
Re: Where can get the Number Convert module?Thanks.
On Sunday, 14 January 2018 at 03:09:40 UTC, Jonathan M Davis wrote: On Sunday, January 14, 2018 02:41:39 FrankLike via Digitalmars-d-learn wrote: [...] I'd suggest looking at [...] I get the result "1000" from byte[] byteData =[0,0,0,8]; Thank you very much.
Re: Where can get the Number Convert module?Thanks.
On Sunday, 14 January 2018 at 02:41:39 UTC, FrankLike wrote: On Sunday, 14 January 2018 at 02:03:39 UTC, Jonathan M Davis wrote: Well, I'm not quite sure what you mean, but if you mean that Sorry,Such as byte[] byteData =[8,0,0,0]; to convert, at last,get the string bit :"100".or get the BitArray. Thanks.
Re: Where can get the Number Convert module?Thanks.
On Sunday, 14 January 2018 at 02:03:39 UTC, Jonathan M Davis wrote: Well, I'm not quite sure what you mean, but if you mean that Such as byte[] byteData =[0,0,0,8]; to convert, at last,get the string bit :"100".or get the BitArray. Thanks.
Where can get the Number Convert module?Thanks.
Hi,everyone, I need some help on 'Number Convert module' in D,such as byte[] type to BinaryDigit. Where can get the module? Thanks.
Re: Write native GUI applications for Windows
On Monday, 18 December 2017 at 07:55:25 UTC, Andrey wrote: Hello! I have a question about creating native GUI applications for Windows 7 or/and Windows 10. Hi,here is a very good native d gui lib,it's name is "dgui": https://github.com/FrankLIKE/DguiT/ I fork and modify ,let it work on DMD2.077 for win7 or win10. It can make the x64 lib. You can try it. Injoy it. Frank.
Re: Database of practicality will be an important factor for development of D language in the future
On Monday, 6 February 2017 at 14:27:24 UTC, Adam D. Ruppe wrote: On Monday, 6 February 2017 at 14:17:39 UTC, FrankLike wrote: [Microsoft][ODBC SQL Server Driver]The connection is busy resulting in another hstmt Process one result before trying to do another query. If you need the data stored, you can do foreach and save the parts you want to an array (it returns strings for all data types so you can append it to a string[]) Thank you. Yes,I do it now,but I find the mysql-Native can do like this. std.socket.SocketOSException@std\socket.d(2755): Unable to connect socket: Can not connect because the target computer actively refused. Check the firewall or connection accept settings on the computer running the database server, it is probably blocking you. Thank you.I test it tomorrow.
Re: Database of practicality will be an important factor for development of D language in the future
On Thursday, 2 February 2017 at 12:41:06 UTC, aberba wrote: On Thursday, 2 February 2017 at 05:33:57 UTC, FrankLike wrote: I use mysql with for vibe.d project and either mysql-lited or mysql-native works well for me. There seem to be no mssql package though (because few people will pay to use unless it fetch them enough money for what it is worth). [...] I love D,thank for your answer.
Re: Database of practicality will be an important factor for development of D language in the future
On Monday, 6 February 2017 at 14:04:37 UTC, Adam D. Ruppe wrote: On Monday, 6 February 2017 at 12:30:11 UTC, FrankLike wrote: Please help me,thank you. 1. arsd.database.ResultSet MSa = MSSqlCon.query(someCmd1); arsd.database.ResultSet MSb = MSSqlCon.query(someCmd2); int icolNumA = MSa.fieldNames.length; int icolNumB = MSb.fieldNames.length; arsd.database.DatabaseException@..\arsd\mssql.d(63): [Microsoft][ODBC SQL Server Driver]The connection is busy resulting in another hstmt 2.When I run the exe file on another computer(run "ping" is ok),get the err: std.socket.SocketOSException@std\socket.d(2755): Unable to connect socket: Can not connect because the target computer actively refused. Thank you. Frank
Re: Database of practicality will be an important factor for development of D language in the future
On Thursday, 2 February 2017 at 12:50:02 UTC, Adam D. Ruppe wrote: On Thursday, 2 February 2017 at 05:33:57 UTC, FrankLike wrote: For example, I want to do the execution of stored procedure for MSSql、MySQL database. I found in Mysql-d, Mysql-Native, arsd, DDBC, etc. there is no result. db.query("CALL my_procedure(args...)"); Should work with any libraries. Stored procedure calls are just another sql string. The first,thank your arsd,it's good for mssql. But mysqlnative.d is not good. Please look at this: Failed: mysql.protocol.packets.MySQLReceivedException@mysql\protocol\commands.d(721): MySQL error: PROCEDURE mydb.myProcedure can't return a result set in the given context Thanks. Frank
Database of practicality will be an important factor for development of D language in the future
A good language, powerful performance is on the one hand, but, first of all is practical. No language does not involve the database, because the database is the most widely used. Why C #, Java are better than D in practical? Because the basic work is good and practical! There was a language is born for the database, it's called PowerBuilder, because it did not keep up with the development of the Internet era (B / S architecture), and their own development is not good, and later replaced by Java. But now, D even C / S architecture is not doing a good job. When I'm ready to use D, but found the poor practicality! C #, Java can do, but D can not do! For example, I want to do the execution of stored procedure for MSSql、MySQL database. I found in Mysql-d, Mysql-Native, arsd, DDBC, etc. there is no result. Therefore, the project had to give up, turn to C #. the practicality of database in D , is the basis for the development of D, will determine the future of D! Frank
Re: How to write Good IDE?
On Wednesday, 1 February 2017 at 15:12:42 UTC, unDEFER wrote: Visual Studio .net is the best,you can look at it! Thanks. Frank
How to Exec Store Procedure For MySql in D? Thanks
Hi,everyone: Now,I find that I can't exec Store Procedure For MySql in D. use mySql-d,mySql-native,or ddbc. I want to get a SqlResult. I think that it's the time to fix the bug! Who can help me? Thank you! Frank
Re: [GSoC] Precise GC
On Friday, 2 September 2016 at 03:25:33 UTC, Jeremy DeHaan wrote: Hi everyone, I know I'm super late to the party for this, and sorry for that. While my work on the precise GC didn't go as planned, it is closer than it was to be getting merged. [...] On Friday, 2 September 2016 at 03:25:33 UTC, Jeremy DeHaan wrote: Hi,how about the precise GC, now?
Re: Anybody still using the chm docs
On Wednesday, 15 June 2016 at 11:54:31 UTC, captaindet wrote: It's a huge maintenance effort for us to produce the chm files. ... So I'm wondering if in 2016 someone really needs an offline copy of a website shipped with a binary release? i am very glad the chm file exists whenever i am not online, e.g. on a plane or train (free wifi is not a given everywhere). finding something in the local html is quite awkward w/o google... if it really takes up too much time i will understand if it has to go too, especially if i a am the minority. just saying: i do use it occasionally, and whenever i do it is a big help. /det +1
Re: We want to start the 'Programming In D 'in Chinese, do you have any good suggestions?
On Friday, 10 June 2016 at 15:04:52 UTC, Ali Çehreli wrote: Thank you,we are in the same organization 'https://github.com/DlangRen'. If you clone that repository and 'make' everything, there should be the following files generated: src/ders/d.cn/编程在D.print.pdf src/ders/d.cn/编程在D.pdf public_html_test/ders/d.cn/* Here D编程 or 《Programming In D》 中文版 is better. Frank
We want to start the 'Programming In D 'in Chinese, do you have any good suggestions?
Hi,everyone: The 'Programming In D' is a good book for new D coders,we want to start it in Chinese, do you have any good suggestions? Thank you.
Re: DlangUI on Android
On Saturday, 23 April 2016 at 14:35:55 UTC, Vadim Lopatin wrote: On Saturday, 23 April 2016 at 12:45:01 UTC, FrankLike wrote: On Saturday, 23 April 2016 at 11:42:49 UTC, Vadim Lopatin wrote: [...] Thank you. But why nothing to be shown,only black color? Probably something is wrong with OpenGL. E.g. OpenGL ES3 is not supported. Log can should failed opengl calls. Waiting for the new apk Thank you..
Re: DlangUI on Android
On Saturday, 23 April 2016 at 11:42:49 UTC, Vadim Lopatin wrote: [...] Thank you. But why nothing to be shown,only black color?
Re: DlangUI on Android
On Friday, 22 April 2016 at 17:02:20 UTC, Vadim Lopatin wrote: Does it crash instantly or shows app GUI for some time? Is your smartphone arm-based? test-runner.apk is ok,but DLangUITetrisExample.apk and DlangUIHelloWorld.apk ,only shows black color. HTC Android 5.02 ,it's arm-based,Not ok, sorry. Where is the log file? Path?
Re: DlangUI on Android
On Friday, 22 April 2016 at 17:02:20 UTC, Vadim Lopatin wrote: On Friday, 22 April 2016 at 15:02:32 UTC, FrankLike wrote: You can downlowd sample APK: https://sourceforge.net/projects/crengine/files/DlangUI/ DlangUI Tetris example now works ok on Android (arm, android4.4+) Android5.02 ,Not ok, sorry. Does it crash instantly or shows app GUI for some time? Is your smartphone arm-based? Couldn't you collect logs with `adb logcat`? What is the name of log file? Nothing is in SDCard.
Re: DlangUI on Android
On Friday, 22 April 2016 at 12:05:52 UTC, Vadim Lopatin wrote: On Thursday, 21 April 2016 at 13:28:18 UTC, Vadim Lopatin wrote: Hello, I've implemented initial support of Android in DlangUI. Only armv7a architecture is supported so far. You can downlowd sample APK: https://sourceforge.net/projects/crengine/files/DlangUI/ DlangUI Tetris example now works ok on Android (arm, android4.4+) Android5.02 ,Not ok, sorry.
Re: DlangUI on Android
On Thursday, 21 April 2016 at 13:28:18 UTC, Vadim Lopatin wrote: Hello, I've implemented initial support of Android in DlangUI. [...] Congratulations!
Whether there is a same module likt C#'s "Windows.Storage" NameSpace?
Hi,everyone, Whether there is a module, like C#'s "Windows.Storage" NameSpace, you can operate the Android phone or ios phone, you can open the phone's folder on windows7? Thank you . Frank.
How to set the Path to access the phone on windows?
Hi,everyone: I want to access the phone on Windows7,but get a error: std.file.FileException@std\file.d(3368):\\computer\myPhone\SDCard\myfiles: 0x0041c112 0x0043E601 The error is only on Windows7,it's ok on linux,I doubt it's not a error with file.d,maybe a error on Path on Windows. Who can help me? Thank you. Frank.
wiringPi-D-the D wrapper for WiringPi, is ok
Hi,everyone: I've wrapper wiringPi library for ARM :(Raspberry Pi 2 model B.) I push the wiringPi-D to github.com: https://github.com/FrankLIKE/wiringPi-D If you need it useful for you,please give it a star. Thank you. Frank
Re: Must I compile on the target architecture?
On Friday, 25 December 2015 at 12:43:05 UTC, Jakob Jenkov wrote: Hi, just a quick question: If I write a program in D and I use Windows for development but want it to run on Linux, do I have to copy the source code to the target Linux machine and compile it there, to make an executable for that machine? What is the standard process for cross platform compilation? GDC is best for cross platform compilation,download it from gdcproject.org.
Re: How to config the GDC on linux target for ARM linux?
On Monday, 28 December 2015 at 13:17:04 UTC, FrankLike wrote: About the first error ("...module wiringPi is in file 'wiringPi.d' which cannot be read...") - are you sure that the dfiles are in "./wiringPi/WiringPi/"? The compiler reports that it can't find them there. You can try copying the WiringPi dfiles in the same folder as "my.d". About the second error - you need to verify that aa.so actually has those symbols that the linker reports as "undefined reference". You can do this with readlelf or nm. For more info see here:http://stackoverflow.com/questions/1237575/how-do-i-find-out-what-all-symbols-are-exported-from-a-shared-object Thank you,but can you tell me that what is right way to use GDC on linux,such as d refer a c lib. for eacample: a.d refer x.h x.c how do you build it by GDC? what's your steps? How to config the GDC for the third part c libaries and d files,such as PATH. Thank you,waiting for your answer.
Re: How to config the GDC on linux target for ARM linux?
I've gotten the answer: use the difference 'gcc' for c code. ---For x86_64: #! /bin/sh dfiles="max31855.d max5322.d mcp23008.d mcp23016.d mcp23016reg.d mcp23017.d mcp23s08.d mcp23s17.d mcp23x08.d mcp23x0817.d mcp3002.d mcp3004.d mcp3422.d mcp4802.d pcf8574.d pcf8591.d sn3218.d softPwm.d softServo.d softTone.d sr595.d wiringPi.d wiringPiI2C.d wiringPiSPI.d wiringSerial.d wiringShift.d wpiExtensions.d" ofiles="drcSerial.o max31855.o max5322.o mcp23008.o mcp23016.o mcp23017.o mcp23s08.o mcp23s17.o mcp3002.o mcp3004.o mcp3422.o mcp4802.o pcf8574.o pcf8591.o piHiPri.o piThread.o sn3218.o softPwm.o softServo.o softTone.o sr595.o wiringPi.o wiringPiI2C.o wiringPiSPI.o wiringSerial.o wiringShift.o wpiExtensions.o" gcc -c *.c -m64 /opt/x86_64-pc-linux-gnu/bin/x86_64-linux-gnu-gdc -o my my.d $ofiles -I$dfiles For ARM: #! /bin/sh cfiles="wiringPi.c max31855.c max5322.c mcp23008.c mcp23016.c mcp23017.c mcp23s08.c mcp23s17.c mcp3002.c mcp3004.c mcp3422.c mcp4802.c pcf8574.c pcf8591.c sn3218.c softPwm.c softServo.c softTone.c sr595.c wiringPiI2C.c wiringPiSPI.c wiringSerial.c wiringShift.c wpiExtensions.c" dfiles="max31855.d max5322.d mcp23008.d mcp23016.d mcp23016reg.d mcp23017.d mcp23s08.d mcp23s17.d mcp23x08.d mcp23x0817.d mcp3002.d mcp3004.d mcp3422.d mcp4802.d pcf8574.d pcf8591.d sn3218.d softPwm.d softServo.d softTone.d sr595.d wiringPi.d wiringPiI2C.d wiringPiSPI.d wiringSerial.d wiringShift.d wpiExtensions.d" ofiles="drcSerial.o max31855.o max5322.o mcp23008.o mcp23016.o mcp23017.o mcp23s08.o mcp23s17.o mcp3002.o mcp3004.o mcp3422.o mcp4802.o pcf8574.o pcf8591.o piHiPri.o piThread.o sn3218.o softPwm.o softServo.o softTone.o sr595.o wiringPi.o wiringPiI2C.o wiringPiSPI.o wiringSerial.o wiringShift.o wpiExtensions.o" /opt/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-gcc -marm -c $cfiles /opt/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-gdc -o my my.d $ofiles -I$dfiles
Re: How to use GDC to get .a file on Linux?
On Sunday, 27 December 2015 at 17:19:26 UTC, Mike Parker wrote: On Sunday, 27 December 2015 at 15:19:21 UTC, FrankLike wrote: Hi, Now I need get the .a file on Linux,target system is ARM. If you use gcc ,you will use the 'ar' to get .a file, but how to do by GDC ? And how to get the execute file by .a file and .d file? Thank you. Just use ar on the generated object files the same way you would if you were using gcc. Thank you,but the error is not ok.maybe some PATH is error,I don't how to set.
Re: How to config the GDC on linux target for ARM linux?
About the first error ("...module wiringPi is in file 'wiringPi.d' which cannot be read...") - are you sure that the dfiles are in "./wiringPi/WiringPi/"? The compiler reports that it can't find them there. You can try copying the WiringPi dfiles in the same folder as "my.d". About the second error - you need to verify that aa.so actually has those symbols that the linker reports as "undefined reference". You can do this with readlelf or nm. For more info see here:http://stackoverflow.com/questions/1237575/how-do-i-find-out-what-all-symbols-are-exported-from-a-shared-object Thank you,but can you tell me that what is right way to use GDC on linux,such as d refer a c lib. for eacample: a.d refer x.h x.c how do you build it by GDC? what's your steps? How to config the GDC for the thirty c lib and d files. Thank you,waiting for your answer.
Re: How to use GDC to get .a file on Linux?
Answer is here: http://forum.dlang.org/thread/txvntyahlaewutzzw...@forum.dlang.org
Re: GDC build wiringPi for 'Raspberry Pi',here is error info
Answer is here: http://forum.dlang.org/thread/txvntyahlaewutzzw...@forum.dlang.org
Re: How to config the GDC on linux target for ARM linux?
On Monday, 28 December 2015 at 15:23:19 UTC, FrankLike wrote: New Answer: I've gotten the answer: use the difference 'gcc' for c code. ---For x86_64: #! /bin/sh dfiles="max31855.d max5322.d mcp23008.d mcp23016.d mcp23016reg.d mcp23017.d mcp23s08.d mcp23s17.d mcp23x08.d mcp23x0817.d mcp3002.d mcp3004.d mcp3422.d mcp4802.d pcf8574.d pcf8591.d sn3218.d softPwm.d softServo.d softTone.d sr595.d wiringPi.d wiringPiI2C.d wiringPiSPI.d wiringSerial.d wiringShift.d wpiExtensions.d" ofiles="drcSerial.o max31855.o max5322.o mcp23008.o mcp23016.o mcp23017.o mcp23s08.o mcp23s17.o mcp3002.o mcp3004.o mcp3422.o mcp4802.o pcf8574.o pcf8591.o piHiPri.o piThread.o sn3218.o softPwm.o softServo.o softTone.o sr595.o wiringPi.o wiringPiI2C.o wiringPiSPI.o wiringSerial.o wiringShift.o wpiExtensions.o" gcc -c *.c -m64 /opt/x86_64-pc-linux-gnu/bin/x86_64-linux-gnu-gdc -o my my.d $ofiles -I$dfiles For ARM(add -I.): #! /bin/sh cfiles="wiringPi.c max31855.c max5322.c mcp23008.c mcp23016.c mcp23017.c mcp23s08.c mcp23s17.c mcp3002.c mcp3004.c mcp3422.c mcp4802.c pcf8574.c pcf8591.c sn3218.c softPwm.c softServo.c softTone.c sr595.c wiringPiI2C.c wiringPiSPI.c wiringSerial.c wiringShift.c wpiExtensions.c" dfiles="max31855.d max5322.d mcp23008.d mcp23016.d mcp23016reg.d mcp23017.d mcp23s08.d mcp23s17.d mcp23x08.d mcp23x0817.d mcp3002.d mcp3004.d mcp3422.d mcp4802.d pcf8574.d pcf8591.d sn3218.d softPwm.d softServo.d softTone.d sr595.d wiringPi.d wiringPiI2C.d wiringPiSPI.d wiringSerial.d wiringShift.d wpiExtensions.d" ofiles="drcSerial.o max31855.o max5322.o mcp23008.o mcp23016.o mcp23017.o mcp23s08.o mcp23s17.o mcp3002.o mcp3004.o mcp3422.o mcp4802.o pcf8574.o pcf8591.o piHiPri.o piThread.o sn3218.o softPwm.o softServo.o softTone.o sr595.o wiringPi.o wiringPiI2C.o wiringPiSPI.o wiringSerial.o wiringShift.o wpiExtensions.o" /opt/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-gcc -marm -c $cfiles -I. /opt/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-gdc -o my my.d $ofiles -I$dfiles
Re: How to use GDC to get .a file on Linux?
On Sunday, 27 December 2015 at 15:24:17 UTC, tcak wrote: On Sunday, 27 December 2015 at 15:19:21 UTC, FrankLike wrote: Hi, Now I need get the .a file on Linux,target system is ARM. If you use gcc ,you will use the 'ar' to get .a file, but how to do by GDC ? And how to get the execute file by .a file and .d file? Thank you. I couldn't have understood your question very well, but some information is here. You create .a static library file with "-lib" flag while compiling. Yesterday I did it. dmd mylib.d -lib This will generate mylib.a. You can later use this static library while compiling another d code. dmd main.d mylib.a Pass the .a file directly as it is another source. I have never tried these with GDC, but I don't think it is much different at all. Now I will target file to ARM linux,and dmd can't get the file for ARM.
How to use GDC to get .a file on Linux?
Hi, Now I need get the .a file on Linux,target system is ARM. If you use gcc ,you will use the 'ar' to get .a file, but how to do by GDC ? And how to get the execute file by .a file and .d file? Thank you.
How to config the GDC on linux target for ARM linux?
Now I build a project for ARM linux on ubuntu 15.04 ,but build error. I download the 'wiringPi' from http://wiringPi.com,convert the *.h to *.d.then build the 'aa.so' file: #! /bin/sh dfiles="max31855.d max5322.d mcp23008.d mcp23016.d mcp23016reg.d mcp23017.d mcp23s08.d mcp23s17.d mcp23x08.d mcp23x0817.d mcp3002.d mcp3004.d mcp3422.d mcp4802.d pcf8574.d pcf8591.d sn3218.d softPwm.d softServo.d softTone.d sr595.d wiringPi.d wiringPiI2C.d wiringPiSPI.d wiringSerial.d wiringShift.d wpiExtensions.d" ofiles="drcSerial.o max31855.o max5322.o mcp23008.o mcp23016.o mcp23017.o mcp23s08.o mcp23s17.o mcp3002.o mcp3004.o mcp3422.o mcp4802.o pcf8574.o pcf8591.o piHiPri.o piThead.o sn3218.o softPwm.o softServo.o softTone.o sr595.o wiringPi.o wiringPiI2C.o wiringPiSPI.o wiringSerial.o wiringShift.o wpiExtensions.o" /opt/arm-unknown-linux-gnueabihf/bin/arm-linux-gnueabihf-gdc -o aa.so $ofiels $dfiles -shared ---my.d import wiringPi; import std.stdio; void main() { writeln("start"); wiringPiSetup(); pinMode(0,OUTPUT); while(1) { digitalWrite(0,HIGH); delay(500); digitalWrite(0,LOW); delay(500); } return; } -build the my execute file /opt/arm-unknown-linux-gnueabihf/bin/arm-linux-gnueabihf-gdc -o my my.d aa.so -I./wiringPi/WiringPi/ -now get the error: my.d:1:8: error: module wiringPi is in file 'wiringPi.d' which cannot be read import wiringPi; ^ import path[0] = /opt/arm-unknown-linux-gnueabihf/lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/include/d -I copy the *.d to /opt/arm-unknown-linux-gnueabihf/lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/include/d it's ok ,but where is the file for config? -get another error: /tmp/cc7M1B9I.o: In function `_Dmain': my.d:(.text+0x60): undefined reference to `wiringPiSetup' my.d:(.text+0x6c): undefined reference to `pinMode' my.d:(.text+0x84): undefined reference to `digitalWrite' my.d:(.text+0x8c): undefined reference to `delay' my.d:(.text+0x98): undefined reference to `digitalWrite' my.d:(.text+0xa0): undefined reference to `delay' collect2: error: ld returned 1 exit status -end I'm not known the GDC config file ,and maybe I use the error build . Who can help me? thank you.
How to use GDC for 'Raspberry Pi' on Linux x86_64?
Hi,everyone, I've download the arm-unknown-linux-gnueabi and arm-unknown-linux-gnueabihf,which is I must to use on ' Raspberry Pi'? Now,I've chosen the arm-unknown-linux-gnueabihf.That's ok? I've made the hello.d,and made the hello. The file 'hello' can be used on 'Raspberry Pi'? Now I'm not having the 'Raspberry Pi'. Thank you.
GCD build wiringPi for 'Raspberry Pi',here is error info
Hi,everyone,I build wiringPi for 'Raspberry Pi'.(http://wiringpi.com/) Here is error info: ---gdcbuild #! /bin/sh dfiles="max31855.d max5322.d mcp23008.d mcp23016.d mcp23016reg.d mcp23017.d mcp23s08.d mcp23s17.d mcp23x08.d mcp23x0817.d mcp3002.d mcp3004.d mcp3422.d mcp4802.d pcf8574.d pcf8591.d sn3218.d softPwm.d softServo.d softTone.d sr595.d wiringPi.d wiringPiI2C.d wiringPiSPI.d wiringSerial.d wiringShift.d wpiExtensions.d" ofiles="drcSerial.o max31855.o max5322.o mcp23008.o mcp23016.o mcp23017.o mcp23s08.o mcp23s17.o mcp3002.o mcp3004.o mcp3422.o mcp4802.o pcf8574.o pcf8591.o piHiPri.o piThead.o sn3218.o softPwm.o softServo.o softTone.o sr595.o wiringPi.o wiringPiI2C.o wiringPiSPI.o wiringSerial.o wiringShift.o wpiExtensions.o" /opt/arm-unknown-linux-gnueabihf/bin/arm-linux-gnueabihf-gdc -o aa.so $ofiels $dfiles -shared sudo ./gdcbuild /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/bin/ld: /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/lib/libgphobos2.a(lifetime.o)(.text+0x30): R_ARM_TLS_LE32 relocation not permitted in shared object /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/bin/ld: /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/lib/libgphobos2.a(lifetime.o)(.text+0x2e0): R_ARM_TLS_LE32 relocation not permitted in shared object /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/bin/ld: /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/lib/libgphobos2.a(lifetime.o)(.text+0x3f0): R_ARM_TLS_LE32 relocation not permitted in shared object /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/bin/ld: /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/lib/libgphobos2.a(lifetime.o)(.text+0x488): R_ARM_TLS_LE32 relocation not permitted in shared object /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/bin/ld: /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/lib/libgphobos2.a(tlsgc.o)(.text+0x28): R_ARM_TLS_LE32 relocation not permitted in shared object /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/bin/ld: /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/lib/libgphobos2.a(deh.o)(.text+0x158): R_ARM_TLS_LE32 relocation not permitted in shared object /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/bin/ld: /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/lib/libgphobos2.a(deh.o)(.text+0x22c): R_ARM_TLS_LE32 relocation not permitted in shared object /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/bin/ld: /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/lib/libgphobos2.a(deh.o)(.text+0x7e0): R_ARM_TLS_LE32 relocation not permitted in shared object /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/bin/ld: /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/lib/libgphobos2.a(thread.o)(.text+0x4c): R_ARM_TLS_LE32 relocation not permitted in shared object /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/bin/ld: /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/lib/libgphobos2.a(thread.o)(.text+0x50): R_ARM_TLS_LE32 relocation not permitted in shared object /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/bin/ld: /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/lib/libgphobos2.a(thread.o)(.text+0x3b8): R_ARM_TLS_LE32 relocation not permitted in shared object /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/bin/ld:
GDC build wiringPi for 'Raspberry Pi',here is error info
Hi,everyone,I build wiringPi for 'Raspberry Pi' by GDC (arm-unknown-linux-gnueabihf2.066.1).('wiringPi' download by http://wiringpi.com/) Here is error info: ---gdcbuild #! /bin/sh dfiles="max31855.d max5322.d mcp23008.d mcp23016.d mcp23016reg.d mcp23017.d mcp23s08.d mcp23s17.d mcp23x08.d mcp23x0817.d mcp3002.d mcp3004.d mcp3422.d mcp4802.d pcf8574.d pcf8591.d sn3218.d softPwm.d softServo.d softTone.d sr595.d wiringPi.d wiringPiI2C.d wiringPiSPI.d wiringSerial.d wiringShift.d wpiExtensions.d" ofiles="drcSerial.o max31855.o max5322.o mcp23008.o mcp23016.o mcp23017.o mcp23s08.o mcp23s17.o mcp3002.o mcp3004.o mcp3422.o mcp4802.o pcf8574.o pcf8591.o piHiPri.o piThead.o sn3218.o softPwm.o softServo.o softTone.o sr595.o wiringPi.o wiringPiI2C.o wiringPiSPI.o wiringSerial.o wiringShift.o wpiExtensions.o" /opt/arm-unknown-linux-gnueabihf/bin/arm-linux-gnueabihf-gdc -o aa.so $ofiels $dfiles -shared sudo ./gdcbuild /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/bin/ld: /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/lib/libgphobos2.a(lifetime.o)(.text+0x30): R_ARM_TLS_LE32 relocation not permitted in shared object /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/bin/ld: /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/lib/libgphobos2.a(lifetime.o)(.text+0x2e0): R_ARM_TLS_LE32 relocation not permitted in shared object /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/bin/ld: /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/lib/libgphobos2.a(lifetime.o)(.text+0x3f0): R_ARM_TLS_LE32 relocation not permitted in shared object /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/bin/ld: /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/lib/libgphobos2.a(lifetime.o)(.text+0x488): R_ARM_TLS_LE32 relocation not permitted in shared object /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/bin/ld: /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/lib/libgphobos2.a(tlsgc.o)(.text+0x28): R_ARM_TLS_LE32 relocation not permitted in shared object /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/bin/ld: /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/lib/libgphobos2.a(deh.o)(.text+0x158): R_ARM_TLS_LE32 relocation not permitted in shared object /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/bin/ld: /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/lib/libgphobos2.a(deh.o)(.text+0x22c): R_ARM_TLS_LE32 relocation not permitted in shared object /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/bin/ld: /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/lib/libgphobos2.a(deh.o)(.text+0x7e0): R_ARM_TLS_LE32 relocation not permitted in shared object /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/bin/ld: /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/lib/libgphobos2.a(thread.o)(.text+0x4c): R_ARM_TLS_LE32 relocation not permitted in shared object /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/bin/ld: /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/lib/libgphobos2.a(thread.o)(.text+0x50): R_ARM_TLS_LE32 relocation not permitted in shared object /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/bin/ld: /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/lib/libgphobos2.a(thread.o)(.text+0x3b8): R_ARM_TLS_LE32 relocation not permitted in shared object /opt/arm-unknown-linux-gnueabihf/bin/../lib/gcc/arm-unknown-linux-gnueabihf/5.2.0/../../../../arm-unknown-linux-gnueabihf/bin/ld:
Re: Let dmd or ldc be easy to setup on Ubuntu
On Tuesday, 22 December 2015 at 14:37:21 UTC, Rikki Cattermole wrote: I'm confused. The commands listed e.g. $ sudo wget http://netcologne.dl.sourceforge.net/project/d-apt/files/d-apt.list -O /etc/apt/sources.list.d/d-apt.list $ sudo apt-get update && sudo apt-get -y --allow-unauthenticated install --reinstall d-apt-keyring && sudo apt-get update Should work. If it does not, please post output. Sorry, it works,but can't get any useful info.
Re: Let dmd or ldc be easy to setup on Ubuntu
On Tuesday, 22 December 2015 at 15:08:20 UTC, FrankLike wrote: On Tuesday, 22 December 2015 at 14:37:21 UTC, Rikki Cattermole wrote: I'm confused. The commands listed e.g. $ sudo wget http://netcologne.dl.sourceforge.net/project/d-apt/files/d-apt.list -O /etc/apt/sources.list.d/d-apt.list $ sudo apt-get update && sudo apt-get -y --allow-unauthenticated install --reinstall d-apt-keyring && sudo apt-get update Should work. If it does not, please post output. Sorry, it works,but can't get any useful info. sudo apt-get install dmd ← it's error. Now I setup by double click the 'dmd_2.069.2-0-amd64.deb' file,and setup it. then sudo apt-get install dub it's ok.
Let dmd or ldc be easy to setup on Ubuntu
Now,we can't setup dmd or ldc like this: sudo apt-get install dmd sudo apt-get install ldc2 If I set 'The Installation Source' is : deb http://downloads.dlang.org/releases/2015/ main But it's error,why? Thank you.
Re: Let dmd or ldc be easy to setup on Ubuntu
On Tuesday, 22 December 2015 at 14:11:29 UTC, Rikki Cattermole wrote: On 23/12/15 3:09 AM, FrankLike wrote: Now,we can't setup dmd or ldc like this: sudo apt-get install dmd sudo apt-get install ldc2 If I set 'The Installation Source' is : deb http://downloads.dlang.org/releases/2015/ main But it's error,why? Thank you. dlang.org does not host a apt repository. There is one on sourceforge for just this however. http://d-apt.sourceforge.net/ deb http://d-apt.sourceforge.net/ trusty main 'The Installation Source' is ok,but in Terminal it's error. Do you have some detail about 'The Installation Source' for dmd or ldc? Thank you.
Who can persuade Markus Persson to give money to the foundation?
His wiki is here : https://en.wikipedia.org/wiki/Markus_Persson Who can do it ,who will be our Hero.
Re: Moving forward with work on the D language and foundation
On Sunday, 30 August 2015 at 11:48:26 UTC, Andrei wrote: On Monday, 24 August 2015 at 18:43:01 UTC, Andrei Alexandrescu wrote: Hello everyone, Following an increasing desire to focus on working on the D language and foundation, I have recently made the difficult decision to part ways with Facebook, my employer of five years and nine months. [...] Great news. I wish you all the best. PS: Multa bafta, sper sa duci D-ul acolo unde-i este locul. Past is the past, why care; if you come out, perhaps the development of D will be better; the future is waiting for you to develop.
Re: How to use Fiber?
On Wednesday, 25 February 2015 at 14:47:37 UTC, Dejan Lekic wrote: On the Articles page on D Wiki ( http://wiki.dlang.org/Articles ) you have this link: http://octarineparrot.com/article/view/getting-more-fiber-in-your-diet It is probably the best article about using fibers in D that I have seen so far. Thank you,I mean concurrency. I've get answer by book 'programming in D'.
Re: Concurrency in D
On Wednesday, 25 February 2015 at 02:04:37 UTC, deadalnix wrote: I have no idea what you mean but: 1/ You should probably be asking in learn. 2/ Most likely, you want std.parallelism Thank you,I've send info in learn,but no person to help me. How to use Fiber and Need help on concurrency
How to use Fiber?
There is a int[] ,how to use the Fiber execute it ? Such as : import std.stdio; import core.thread; class DerivedFiber : Fiber { this() { super( run ); } private : void run() { printf( Derived fiber running.\n ); faa(); } } int[] v; void ftread() { DerivedFiber work = new DerivedFiber(); writeln( will call ); work.call(); writeln( stop call ); } void faa() { writeln( start ); //Fiber.yield(); writeln( start yield ); foreach(c;v) { writeln( current n is ,c ); } } void main() { int n=1; while(n=10_001) { v~=n; n+=5000; } printf( Execution returned to calling context.\n ); ftread(); } -end I dont's think it's a good work. How about you? Thank you.
Concurrency in D
There is a int[] ,how to use the Fiber execute it ? Such as : import std.stdio; import core.thread; class DerivedFiber : Fiber { this() { super( run ); } private : void run() { printf( Derived fiber running.\n ); faa(); } } int[] v; void ftread() { DerivedFiber work = new DerivedFiber(); writeln( will call ); work.call(); writeln( stop call ); } void faa() { writeln( start ); //Fiber.yield(); writeln( start yield ); foreach(c;v) { writeln( current n is ,b(c) ); } } void b(int n) { ...//do someting for n } void main() { int n=1; while(n=10_001) { v~=n; n+=5000; } printf( Execution returned to calling context.\n ); ftread(); } -end I dont's think it's a good work. How about you? Thank you.
Re: Deprecation process documented?
On Tuesday, 24 February 2015 at 07:49:55 UTC, Jacob Carlborg wrote: Can you help me about 'Concurrency in D'? Thank you. http://forum.dlang.org/thread/dugsyhsswoovgywpl...@forum.dlang.org Some people think rust is better ,but I think D is better. But I don't know that how to use 'Concurrency in D',Can you help me ? Thank you.
Need help with concurrency
Hello,everyone,what is a better way with concurrency? http://forum.dlang.org/thread/urqxiaairpnrjggqd...@forum.dlang.org Thank you.
D plan to do RAII(Resource Acquisition Is Initialization)?
RAII(Resource Acquisition Is Initialization) is a good thing,will D plan to do it?
Memory safety depends entirely on GC ?
Now,some people think D is a 'Memory safety depends entirely on GC' system Language,what do you think?