Re: Why can't the DMD compiler accept files or directories with white spaces even delimited by quotes?

2021-09-04 Thread Marcone via Digitalmars-d-learn

On Sunday, 5 September 2021 at 00:00:33 UTC, jfondren wrote:

On Saturday, 4 September 2021 at 23:50:33 UTC, Marcone wrote:

Example:

dmd "hello world.d"


```
$ cat hello\ world.d
module helloworld;
void main() {
import std.stdio : writeln;
writeln("without the explicit 'module', this file would");
writeln("be inferred to have an invalid module name.");
}
$ dmd 'hello world.d'
$ ./hello\ world
without the explicit 'module', this file would
be inferred to have an invalid module name.
$ sed -i 1d hello\ world.d
$ dmd 'hello world.d'
hello world.d: Error: module `hello world` has non-identifier 
characters in filename, use module declaration instead

```


Very Good! Now work fine.


Why can't the DMD compiler accept files or directories with white spaces even delimited by quotes?

2021-09-04 Thread Marcone via Digitalmars-d-learn

Example:

dmd "hello world.d"


Re: how to import .lib library

2021-08-15 Thread Marcone via Digitalmars-d-learn

On Sunday, 15 August 2021 at 10:12:17 UTC, Timofeyka wrote:

Thank you for your reply!
I wanted to link to my project another project without source 
code.


This tutorial can help you create yours libs: 
https://wiki.dlang.org/Win32_DLLs_in_D


Re: how to import .lib library

2021-08-15 Thread Marcone via Digitalmars-d-learn

On Sunday, 15 August 2021 at 09:49:39 UTC, Timofeyka wrote:

Hello!
I may have a very stupid question, but still.
How do I include a .lib library? How to use it in your code?


Inside the source code you can use pragma. Example:

pragma(lib, "gdi32.lib");

In DMD command line you can use -L flag that pass the lib to 
linker. Example:


dmd -Lgdi32.lib mycode.d


Re: How to extend the string class to return this inside the square bracket?

2021-08-14 Thread Marcone via Digitalmars-d-learn

On Saturday, 14 August 2021 at 08:24:41 UTC, user1234 wrote:

On Friday, 13 August 2021 at 23:33:05 UTC, Paul Backus wrote:

On Friday, 13 August 2021 at 23:23:55 UTC, Marcone wrote:


writeln("Hello World!"[x.indexOf("e")..x.indexOf("r")]);

indexOf()is just a simple example, not the goal. I want 
handle literal inside [] like it bellow, but in literal:


string x = "Hello World!";
writeln(x[x.indexOf("e")..x.indexOf("r")]);


You can use the `pipe` function to bind an arbitrary 
expression to a variable:


```d
import std.functional: pipe;
import std.algorithm: countUntil;
import std.stdio: writeln;

"Hello world!"
.pipe!(s => s[s.countUntil('e') .. s.countUntil('r')])
.writeln;
```


nice, that's the best alternative.


Very Good!!! This pipe!() is just what I am looking for. Thank 
you very much


Re: How to extend the string class to return this inside the square bracket?

2021-08-13 Thread Marcone via Digitalmars-d-learn

On Friday, 13 August 2021 at 23:21:42 UTC, Ali Çehreli wrote:

On 8/13/21 4:08 PM, jfondren wrote:

On Friday, 13 August 2021 at 22:09:59 UTC, Marcone wrote:


Isn't there some unario operator template that I can use with 
lambda to handle a string literal?


So, something other than an exact "lit"[0..this.xx(..)] syntax 
is fine?


What didn't you like about `"Hello 
World!".findSplit("o")[0].writeln;` then?


What is a real example of something you want to do?


And I started writing the following but stopped because the 
semantics are not clear. I first called it 'between' but then 
should the 'o' that was searched be a part of the output?


Should "from 'o' to 'o'" produce an empty string, should it 
include a single 'o' or should it go all the way to the next 
'o'?


What about the last line which says "from 'd' to 'a'"? Is that 
an entirely empty range or just 'd' or 'd' till the end?


I don't think the programming language can decide one way or 
the other.


import std.algorithm;
import std.range;
import std.stdio;

auto inclusive(R, E)(R range, E fromNeedle, E toNeedle) {
  auto found = range.find(fromNeedle);
  return chain(found.front.only, 
found.drop(1).findSplitAfter(only(toNeedle))[0]);

}

void main() {
  const s = "Hello World!";
  auto r = s.inclusive('o', 'o');
  writeln(r);

  writeln("abcdef".inclusive('d', 'a'));
}

Ali



import std;

class None {}
// Function slice()
auto slice(T1, T2, T3 = None)(T1 conteudo, T2 inicio, T3 fim = 
T3.init) {

int start, end, startlen;
	static if (is(T2 == int)) {inicio = inicio < 0 ? conteudo.length 
+ inicio : inicio;}
	static if (is(T3 == int)) {fim = fim <= 0 ? conteudo.length + 
fim : fim;}
	static if (is(T2 == int)) {start = inicio;} else static if 
(is(T2 == string)){start = conteudo.countUntil(inicio);}
	static if (is(T2 == string)) {static if (is(T1 == 
string)){startlen = start + inicio.length + 1;} else {startlen = 
start + 1;}}
	static if (is(T3 == int)) {end = fim;} else static if (is(T3 == 
string)){end = startlen + conteudo[startlen..$].countUntil(fim);}
	static if (is(T3 == None)) {return conteudo[start];} else 
{return conteudo[start..end];}

}

void main(){
writeln("Hello World!".slice(1, 8)); // ello Wo
writeln("Hello World!".slice("e", "r")); // ello Wo
writeln("Hello World!".slice(1, "r")); // ello Wo
writeln("Hello World!".slice("e", 8)); // ello Wo
writeln("Hello World!".slice(6, -1)); // World (Same as $-1)
	writeln("Hello World!".slice(-12, -7)); // Hello (Same as $-12, 
$-7)
	writeln("Hello World!".slice("W", -1)); // World (Same as "W", 
$-1)
	writeln("Hello World!".slice(-12, " ")); // Hello (Same as $-12, 
" ")

}

Like this function, but inside []. So I can use functions to get 
index for slice.





Re: How to extend the string class to return this inside the square bracket?

2021-08-13 Thread Marcone via Digitalmars-d-learn

On Friday, 13 August 2021 at 23:08:07 UTC, jfondren wrote:

On Friday, 13 August 2021 at 22:09:59 UTC, Marcone wrote:


Isn't there some unario operator template that I can use with 
lambda to handle a string literal?


So, something other than an exact "lit"[0..this.xx(..)] syntax 
is fine?


What didn't you like about `"Hello 
World!".findSplit("o")[0].writeln;` then?


What is a real example of something you want to do?


writeln("Hello World!"[x.indexOf("e")..x.indexOf("r")]);

indexOf()is just a simple example, not the goal. I want handle 
literal inside [] like it bellow, but in literal:


string x = "Hello World!";
writeln(x[x.indexOf("e")..x.indexOf("r")]);


Re: How to extend the string class to return this inside the square bracket?

2021-08-13 Thread Marcone via Digitalmars-d-learn
On Friday, 13 August 2021 at 21:47:22 UTC, Steven Schveighoffer 
wrote:

On 8/13/21 5:05 PM, Marcone wrote:
How to extend the string class to return this inside the 
square bracket the same way opDollar $ returns the length of 
the string? Thank you.


     import std;

     void main(){
     writeln("Hello World!"[0..this.indexOf("o")]);
     }


There is no string class to extend.

`$` is a special token the compiler changes to `arr.length` for 
arrays.


-Steve


Isn't there some unario operator template that I can use with 
lambda to handle a string literal?


Re: How to extend the string class to return this inside the square bracket?

2021-08-13 Thread Marcone via Digitalmars-d-learn

On Friday, 13 August 2021 at 21:14:29 UTC, user1234 wrote:

On Friday, 13 August 2021 at 21:05:22 UTC, Marcone wrote:
How to extend the string class to return this inside the 
square bracket the same way opDollar $ returns the length of 
the string? Thank you.


import std;

void main(){
writeln("Hello World!"[0..this.indexOf("o")]);
}


this does not exist (and see few reason for) but algo + ufcs 
allows this easily, e.g


```
"Hello World!".findSplit("o")[0].writeln;
```

bonus: both can throw bound error


My example was just an example. I don't want this solution. I 
want to have the power to handle the string inside the square 
brackets.


How to extend the string class to return this inside the square bracket?

2021-08-13 Thread Marcone via Digitalmars-d-learn
How to extend the string class to return this inside the square 
bracket the same way opDollar $ returns the length of the string? 
Thank you.


import std;

void main(){
writeln("Hello World!"[0..this.indexOf("o")]);
}


Re: -L/SUBSYSTEM:windows Error when using -m64

2021-08-10 Thread Marcone via Digitalmars-d-learn

On Tuesday, 10 August 2021 at 19:01:42 UTC, Adam D Ruppe wrote:

On Tuesday, 10 August 2021 at 18:59:33 UTC, Marcone wrote:

Using -Lgdi32.lib -Luser32.lib? Same error.


The part after that:

If you want the Windows subsystem too, use -L/subsystem:windows 
-L/entry:mainCRTStartup.



Pass BOTH -L/subsystem:windows AND -L/entry:mainCRTStartup


Good! work very well! Thank you!


Re: -L/SUBSYSTEM:windows Error when using -m64

2021-08-10 Thread Marcone via Digitalmars-d-learn

On Tuesday, 10 August 2021 at 18:51:28 UTC, Adam D Ruppe wrote:

On Tuesday, 10 August 2021 at 18:45:35 UTC, Marcone wrote:
Hi, do you have some other solution without 
arsd.simpledisplay? I want only dmd feature.


Did you read the paragraph under the link? That IS a dmd 
switch. Or a ldc switch. It explains the concept which works 
with anything.


Using -Lgdi32.lib -Luser32.lib? Same error.


Re: -L/SUBSYSTEM:windows Error when using -m64

2021-08-10 Thread Marcone via Digitalmars-d-learn

On Tuesday, 10 August 2021 at 18:36:27 UTC, Adam D Ruppe wrote:

On Tuesday, 10 August 2021 at 18:34:03 UTC, Marcone wrote:

How can I hide console using -m64?


http://dpldocs.info/experimental-docs/arsd.simpledisplay.html#installation-instructions


Hi, do you have some other solution without arsd.simpledisplay? I 
want only dmd feature.


-L/SUBSYSTEM:windows Error when using -m64

2021-08-10 Thread Marcone via Digitalmars-d-learn
How use -L/SUBSYSTEM:windows for hide console in x64 prograns? 
Becouse if I use -L/SUBSYSTEM:windows and -m64 I get this error:


lld-link: error: undefined symbol: WinMain

referenced by msvcrt120.lib(msvcrt_stub2.obj):($LN5)

Error: linker exited with status 1

If I delete -L/SUBSYSTEM:windows compile fine.


How can I hide console using -m64?


Re: Error when compile with DMD using -m64?

2021-08-10 Thread Marcone via Digitalmars-d-learn

On Tuesday, 10 August 2021 at 15:55:42 UTC, Bastiaan Veelo wrote:

On Tuesday, 10 August 2021 at 01:29:04 UTC, Marcone wrote:

Solved converting long and int.


Use `size_t` and `ptrdiff_t` instead to make your program 
compile in both 32 bit and 64 bit modes.


https://dlang.org/spec/type.html#aliased-types

-- Bastiaan.


Thank you very much! Your information was very precious! It 
worked very well! Now I can create x32 or x64 compatible programs 
without creating two codes.


Re: Error when compile with DMD using -m64?

2021-08-09 Thread Marcone via Digitalmars-d-learn

On Monday, 9 August 2021 at 19:58:03 UTC, novice2 wrote:

On Monday, 9 August 2021 at 19:53:48 UTC, Marcone wrote:

program not run.


compilation errors?
runtime errors?


Solved converting long and int.


Error when compile with DMD using -m64?

2021-08-09 Thread Marcone via Digitalmars-d-learn
When I compile program in Ly Windows x64 using dmd flag -m64 the 
program not run.

How fix it?


Re: How Add Local modules mymodule.d using DUB?

2021-08-09 Thread Marcone via Digitalmars-d-learn
On Monday, 9 August 2021 at 16:37:10 UTC, Steven Schveighoffer 
wrote:

On 8/9/21 12:32 PM, Marcone wrote:

My main program need import a local module called mymodule.d.
How can I add this module using DUB? Thank you.


You mean how to add a local project (that isn't on 
code.dlang.org)?


`dub add-local .` inside the project directory.

I don't think you can add a file directly without a project, 
but possibly.


-Steve


Add module to linker.


Re: How Add Local modules mymodule.d using DUB?

2021-08-09 Thread Marcone via Digitalmars-d-learn
On Monday, 9 August 2021 at 16:37:10 UTC, Steven Schveighoffer 
wrote:

On 8/9/21 12:32 PM, Marcone wrote:

My main program need import a local module called mymodule.d.
How can I add this module using DUB? Thank you.


You mean how to add a local project (that isn't on 
code.dlang.org)?


`dub add-local .` inside the project directory.

I don't think you can add a file directly without a project, 
but possibly.


-Steve


I want add modules as phobos modules, but custom modules.


How Add Local modules mymodule.d using DUB?

2021-08-09 Thread Marcone via Digitalmars-d-learn

My main program need import a local module called mymodule.d.
How can I add this module using DUB? Thank you.


Re: How to divide by space keeping words with spaces inside quotes?

2021-08-09 Thread Marcone via Digitalmars-d-learn
Thank you very much! With your helps I created this function that 
works fine:


// Function splitcommas()
string[] splitcommas(string text) nothrow {
try {
		return 
text.splitter!(Yes.keepSeparators)(regex("[^\\s\"']+|\"([^\"]*)\"|'([^']*)'")).array.map!(x => x.replace("\"", "")).filter!(x => x.strip.length).array;

} catch(Throwable){ return []; }
}


How to divide by space keeping words with spaces inside quotes?

2021-08-08 Thread Marcone via Digitalmars-d-learn

How to divide by space keeping words with spaces inside quotes?

Exanple:

string text = "Duck Cat \"Carl Rivers\" Dog";

I want split to:

["Duck", "Cat", "Carl Rivers", "Dog"]


ATENTION: I DON'T WANT:

["Duck", "Cat", "Carl", "Rivers", "Dog"]


How can I get it in Dlang?


Re: How suppress (Hide) prompt command console in DMC? Like -mwindows in C++?

2021-08-07 Thread Marcone via Digitalmars-d-learn

On Sunday, 8 August 2021 at 00:23:55 UTC, Adam D Ruppe wrote:

On Sunday, 8 August 2021 at 00:02:18 UTC, Marcone wrote:
I create a gui program using DMC. I want to know how suppress 
(Hide) prompt command console in DMC? Like -mwindows in C++. 
Thank you.


use /subsystem:windows

a few more details here 
http://arsd-official.dpldocs.info/arsd.simpledisplay.html#installation-instructions


Thank you very much! Work fine.


How suppress (Hide) prompt command console in DMC? Like -mwindows in C++?

2021-08-07 Thread Marcone via Digitalmars-d-learn
I create a gui program using DMC. I want to know how suppress 
(Hide) prompt command console in DMC? Like -mwindows in C++. 
Thank you.


DMC Error: comctl32.lib Error 43: Not a Valid Library File

2021-08-07 Thread Marcone via Digitalmars-d-learn
Using DMC to compile .cpp using gdi32.lib as dmc compile 
parameter. I get this error:


OPTLINK (R) for Win32  Release 8.00.16
Copyright (C) Digital Mars 1989-2013  All rights reserved.
http://www.digitalmars.com/ctg/optlink.html
comctl32.lib
 Error 43: Not a Valid Library File
--- errorlevel 1


How can I solve it?


Re: DMC Error: comctl32.lib Error 43: Not a Valid Library File

2021-08-07 Thread Marcone via Digitalmars-d-learn
I added gdi32.lib user32.lib kernel32.lib comctl32.lib as dmc 
parameters. But don't work.


There are some Feed RSS or mail alert for new Dlang compiler update?

2021-06-13 Thread Marcone via Digitalmars-d-learn

Thank you very much guys.


There are some Feed RSS or mail alert for new Dlang compiler update?

2021-06-12 Thread Marcone via Digitalmars-d-learn

Becouse I can not find it.


How use lineSplitter with KeepTerminator flag?

2021-06-09 Thread Marcone via Digitalmars-d-learn

I want add Yes.keepTerminator flag on lineSplitter.


Re: Why std.file.append() new lind "\n" not work in Windows?

2021-06-09 Thread Marcone via Digitalmars-d-learn

std.file.append(file, "\nApple");
std.file.append(file, "\nBanana");

Result:

AppleBanana



Why std.file.append() new lind "\n" not work in Windows?

2021-06-09 Thread Marcone via Digitalmars-d-learn

std.file.append("file; \nApple");
std.file.append("file; \nBanana");

Result:

AppleBanana


Re: Why std.file.append() new lind "\n" not work in Windows?

2021-06-09 Thread Marcone via Digitalmars-d-learn

std.file.append(file; "\nApple");
std.file.append(file; "\nBanana");

Result:

AppleBanana




foreach: How start a foreach count with specific number?

2021-06-02 Thread Marcone via Digitalmars-d-learn

Example:

// --args "C:\Users\Usuario\Downloads\dist\Programa.exe"

import modulo;

void main(string[] args){
if (args.length >= 2)
{
string exePrincipal = args[1];
chdir(exePrincipal.dirName);

foreach(n, i; glob("*")){
print("{} DATA {}".format(n, i));
}
}
}

This print:

0 DATA icone.ico
1 DATA libgcc_s_dw2-1.dll
2 DATA libstdc++-6.dll
3 DATA libwinpthread-1.dll
4 DATA platforms
5 DATA Programa.d
6 DATA Programa.exe
7 DATA Programa.obj
8 DATA Programa.rc
9 DATA Programa.res
10 DATA Qt5Core.dll
11 DATA Qt5Gui.dll
12 DATA Qt5Widgets.dll
13 DATA qte5.d
14 DATA QtE5Widgets32.dll


But I don't want it starts with 0, but other number. How can I do 
it?


Re: wanting to try a GUI toolkit: needing some advice on which one to choose

2021-05-28 Thread Marcone via Digitalmars-d-learn

On Friday, 28 May 2021 at 17:04:15 UTC, Vinod K Chandran wrote:

On Thursday, 27 May 2021 at 01:17:44 UTC, someone wrote:


I am learning D by writing a Windows only GUI library. It is 
taking too much time for me since, I am writing some stuff and 
then happen to learn some new things about it and re-writing 
it.Anyhow, so far so good. This is the code now.


```d
import winglib ;
import std.stdio : log = writeln;

void main() {   

auto frm = new Window() ;   
frm.text = "Learning D By Writing D";

// C = Control class. Window is derived from Control
// E = EventArgs.

	frm.onMouseHover = (c, e) => log("Mouse is now on ", e.x, ", 
", e.y);

frm.onMouseLeave = (c, e) => log("Mouse leaved from window") ; 
frm.onKeyDown =  (c, e) => log(e.keyCode, " key is pressed");
frm.create() ;

auto btn = new Button(frm) ;
btn.font.name = "Calibri" ;
btn.width = 150 ;
btn.text = "DMD Or LDC" ;
btn.font.size = 14 ;
btn.create() ;

frm.show() ;

}
```
I am slowly adding more features to this. Till now, Window & 
Button are completed.


Win32Api + Metaprogramming?


Re: wanting to try a GUI toolkit: needing some advice on which one to choose

2021-05-28 Thread Marcone via Digitalmars-d-learn

On Thursday, 27 May 2021 at 01:17:44 UTC, someone wrote:

Yes, I know this is a question lacking a straightforward answer.

Requirements:

[...]


Win32Api. You can use resEdit to create your resource GUI. Work 
only for Windows. Here is my program created with Dlang and 
Win32Api GUI:   
https://sourceforge.net/projects/direct-http-tunnel/


Re: DMC + Win32Api: Error: undefined identifier 'SetDCBrushColor'

2021-05-17 Thread Marcone via Digitalmars-d-learn

Why gdi32.lib in dmc is not a Valid Library File?


Re: DMC + Win32Api: Error: undefined identifier 'SetDCBrushColor'

2021-05-16 Thread Marcone via Digitalmars-d-learn

On Sunday, 16 May 2021 at 15:43:51 UTC, Adam D. Ruppe wrote:

On Sunday, 16 May 2021 at 14:51:56 UTC, Marcone wrote:

Error: undefined identifier 'SetDCBrushColor'


Did you include gdi32.lib on the command line?


I got this error:
C:\Users\Usuario\Arquivos\dm\lib\gdi32.lib
 Error 43: Not a Valid Library File


Re: DMC + Win32Api: Error: undefined identifier 'SetDCBrushColor'

2021-05-16 Thread Marcone via Digitalmars-d-learn

On Sunday, 16 May 2021 at 18:06:40 UTC, Jack wrote:

On Sunday, 16 May 2021 at 14:51:56 UTC, Marcone wrote:
Well, I program in D as a hobby for just over a year, and I 
like to learn and explore this wonderful programming language. 
Now I found the DMC compiler that compiles C ++ code. So I 
decided to test it. Creating a program with a win32api 
graphical interface I run into this error:


Error: undefined identifier 'SetDCBrushColor'

How to solve this problem? Thanks.


if it's not one defined in one of the core.sys.windows module, 
export it yourself:


```d
pragma(lib, "Gdi32.lib");

COLORREF SetDCBrushColor(
  HDC  hdc,
  COLORREF color
);

```


Not DMD + D, but DMC + C++


Re: DMC + Win32Api: Error: undefined identifier 'SetDCBrushColor'

2021-05-16 Thread Marcone via Digitalmars-d-learn

On Sunday, 16 May 2021 at 15:43:51 UTC, Adam D. Ruppe wrote:

On Sunday, 16 May 2021 at 14:51:56 UTC, Marcone wrote:

Error: undefined identifier 'SetDCBrushColor'


Did you include gdi32.lib on the command line?


Yes, I did it. But not work. I get this error:
Error: undefined identifier 'SetDCBrushColor'


DMC + Win32Api: Error: undefined identifier 'SetDCBrushColor'

2021-05-16 Thread Marcone via Digitalmars-d-learn
Well, I program in D as a hobby for just over a year, and I like 
to learn and explore this wonderful programming language. Now I 
found the DMC compiler that compiles C ++ code. So I decided to 
test it. Creating a program with a win32api graphical interface I 
run into this error:


Error: undefined identifier 'SetDCBrushColor'

How to solve this problem? Thanks.


Re: How use Predicate (alias pred = "a*b")?

2021-05-13 Thread Marcone via Digitalmars-d-learn

On Thursday, 13 May 2021 at 21:38:25 UTC, Adam D. Ruppe wrote:

On Thursday, 13 May 2021 at 21:30:43 UTC, Marcone wrote:

template foo(alias pred = "a*b"){
void foo(int x, int y){
writeln(x.unaryFun!pred);


First, you really shouldn't use these at all. instead of a 
string, just pass an actual function to the thing as the 
predicate.


but if you must use it, unaryFun has one argument, so just a. 
if you want a and b, two arguments, that's binaryFun.


Thank you. binaryFun solved the problem.


Re: How use Predicate (alias pred = "a*b")?

2021-05-13 Thread Marcone via Digitalmars-d-learn

On Thursday, 13 May 2021 at 21:38:25 UTC, Adam D. Ruppe wrote:

On Thursday, 13 May 2021 at 21:30:43 UTC, Marcone wrote:

template foo(alias pred = "a*b"){
void foo(int x, int y){
writeln(x.unaryFun!pred);


First, you really shouldn't use these at all. instead of a 
string, just pass an actual function to the thing as the 
predicate.


but if you must use it, unaryFun has one argument, so just a. 
if you want a and b, two arguments, that's binaryFun.


This is just a simple example of how it works. I won't use it. 
However, I believe it will be very useful for meta programming.


How use Predicate (alias pred = "a*b")?

2021-05-13 Thread Marcone via Digitalmars-d-learn

import std;

template foo(alias pred = "a*b"){
void foo(int x, int y){
writeln(x.unaryFun!pred);
}
}

void main(){
foo(5, 4);
}


"a" works, but "b" not work.
I get this error: Error: undefined identifier `b`



Re: Can the DMC completely replace the C or C ++ compiler?

2021-05-06 Thread Marcone via Digitalmars-d-learn

On Thursday, 6 May 2021 at 20:10:29 UTC, Adam D. Ruppe wrote:

On Thursday, 6 May 2021 at 19:59:01 UTC, Marcone wrote:
Well, I am writing a C++ program and compiling with DMC 
Digital Mars, and the program is running normally. Can the DMC 
completely replace the C or C ++ compiler?


It IS a C and C++ compiler.


Is it compatible with C++ 17 or 20? Can I delete my MinGW and use 
only DMC for any project in C or C++?


Can the DMC completely replace the C or C ++ compiler?

2021-05-06 Thread Marcone via Digitalmars-d-learn
Well, I am writing a C++ program and compiling with DMC Digital 
Mars, and the program is running normally. Can the DMC completely 
replace the C or C ++ compiler?





Re: How suppress DMC File name and path showing after compile?

2021-05-06 Thread Marcone via Digitalmars-d-learn

On Thursday, 6 May 2021 at 16:00:03 UTC, Paul Backus wrote:

On Thursday, 6 May 2021 at 15:55:07 UTC, Marcone wrote:

dmc Programa.cpp && Programa.exe

is showing this, but I want show only "Hello World!"


C:\Users\Usuario\Arquivos\Estudando\C\Programa.cpp: <--- I 
don't want DMC show this.

Hello World!
[Finished in 0.2s]


Redirect the compiler's output to NUL:

https://docs.microsoft.com/en-US/troubleshoot/cpp/redirecting-error-command-prompt


I don't want redirect output to nul. Becouse errors in dmc is not 
redirected to stderror, so I will not see errors.


How suppress DMC File name and path showing after compile?

2021-05-06 Thread Marcone via Digitalmars-d-learn

dmc Programa.cpp && Programa.exe

is showing this, but I want show only "Hello World!"


C:\Users\Usuario\Arquivos\Estudando\C\Programa.cpp: <--- I don't 
want DMC show this.

Hello World!
[Finished in 0.2s]


Re: win64 DLL stdout printing after main process completes

2021-04-20 Thread Marcone via Digitalmars-d-learn

On Monday, 19 April 2021 at 14:55:03 UTC, cc wrote:
I'm not sure if this is something unique to D or not, but I've 
having a minor issue where stdout output from a DLL (either via 
printf or phobos std.stdio write) is not displayed until after 
the main process has completed.  I'm making a project based 
around the example at https://wiki.dlang.org/Win32_DLLs_in_D 
which I've heard is a little out of date but I've gotten it 
working nonetheless.  I have the following project files:


```d
// mydll.d
module mydll;
import core.runtime;
import core.stdc.stdio;
import core.stdc.stdlib;
import core.sys.windows.windows;
extern(Windows) BOOL DllMain(HINSTANCE hInstance, ULONG 
ulReason, LPVOID pvReserved) {

switch (ulReason) {
case DLL_PROCESS_ATTACH:
printf("[dll] DLL_PROCESS_ATTACH\n");
Runtime.initialize();
break;
case DLL_PROCESS_DETACH:
printf("[dll] DLL_PROCESS_DETACH\n");
Runtime.terminate();
break;
case DLL_THREAD_ATTACH:
printf("[dll] DLL_THREAD_ATTACH\n");
return false;
case DLL_THREAD_DETACH:
printf("[dll] DLL_THREAD_DETACH\n");
return false;
default:
}
return true;
}
export int MyDLL_Test() {
printf("[dll] MyDLL_Test\n");
return 5;
}
static this() {
printf("[dll] static this for mydll\n");
}
static ~this() {
printf("[dll] static ~this for mydll\n");
}
```

```d
// mydll.di
module mydll;
export int MyDLL_Test();
```

```d
// main.d
import mydll;
pragma(lib, "mydll.lib");
import core.sys.windows.windows;
void main() {
printf("[Main] Start\n");
scope(exit) printf("[Main] END\n");
int x = MyDLL_Test();
printf("[Main] x: %d\n", x);
printf("[Main] Finished\n");
}
```

DLL compilation command line: `dmd -m64 -ofmydll.dll -L/DLL 
mydll.d mydll.def`

Main command line: `rdmd -m64 main.d`

And upon running, the output I receive is:
```
[Main] Start
[Main] x: 5
[Main] Finished
[Main] END
[dll] DLL_PROCESS_ATTACH
[dll] static this for mydll
[dll] MyDLL_Test
[dll] DLL_PROCESS_DETACH
[dll] static ~this for mydll
```

I would expect the first three lines of dll output to precede 
the "[Main] x:" line at least.  Is there something I'm doing 
wrong?  Do I need to somehow pass a reference to the main stdio 
to the DLL's D runtime similar to how the GC can be shared?


Hi, I use this function:

// Function echo()
void echo(T)(T text) nothrow {try {spawnShell("echo%s 
%s".format(text.to!string.strip() != "" ? "" : ".", 
text.to!string.replace(">","^>").replace("&","^&").replace("\n"," 
&"))); } catch(Throwable){} }


echo("This is not will wait the end to print.");


Re: How send parameters to DMD when using DUB

2021-04-19 Thread Marcone via Digitalmars-d-learn

/+ dub.sdl:
   dependency "telega" version="~>0.2.0"
   lflags "C:\\Users\\Usuario\\Arquivos\\Sublime Text Build 
3211\\Data\\Packages\\resources.res" platform="dmd"

+/

Solved replaceing dflags to lflags



Re: How send parameters to DMD when using DUB

2021-04-19 Thread Marcone via Digitalmars-d-learn

I'm trying this code but do not work.

/+ dub.sdl:
   dependency "telega" version="~>0.2.0"
   dflags "C:\\Users\\Usuario\\Arquivos\\Sublime Text Build 
3211\\Data\\Packages\\resources.res" platform="dmd"

+/


How send parameters to DMD when using DUB

2021-04-19 Thread Marcone via Digitalmars-d-learn

I need add resources. But how can I make it using DUB?


Re: DUB Error with packcage dformlib

2021-04-18 Thread Marcone via Digitalmars-d-learn

On Sunday, 18 April 2021 at 07:31:12 UTC, Imperatorn wrote:

On Sunday, 18 April 2021 at 01:37:14 UTC, Marcone wrote:

I have this message when try build dub. How solve it?

Unresolvable dependencies to package dformlib
app ~master depends on dformlib ~0.2.2>


Just a comment, dforms is millions of years old. It would be 
nice to see support for it again, but I would probably choose 
another framework.


Really. But in D everything is old and obsolete.


DUB Error with packcage dformlib

2021-04-17 Thread Marcone via Digitalmars-d-learn

I have this message when try build dub. How solve it?

Unresolvable dependencies to package dformlib
app ~master depends on dformlib ~0.2.2>


Why DUB do not import local D modules dependencies?

2021-04-09 Thread Marcone via Digitalmars-d-learn

How make dub import local D modules (mymodule.d) dependencies?


How Add DUB packages path to Dlang Linter to avoid Errors?

2021-04-07 Thread Marcone via Digitalmars-d-learn
When I import modules from dub im my SublimeText, D Linter show 
as errors.

Example:

7:8  error  dmd:Error  module `core` is in file 
'vibe\core\core.d' which cannot be read


How solve it?


How use WinUI with Dlang?

2021-03-31 Thread Marcone via Digitalmars-d-learn

There is a way for create modern windows GUI with WinUI and Dlang?


Re: Why I need DUB? Will never DMD don't just use import for import packages?

2021-03-29 Thread Marcone via Digitalmars-d-learn

On Monday, 29 March 2021 at 19:14:41 UTC, Andre Pany wrote:

On Monday, 29 March 2021 at 19:06:33 UTC, Marcone wrote:
Why can't I just use: import vibe.vibe; for import packages 
like Nim or Python? Why I still use DUB?


In python you also have pip.

It is possible to use vibe.d (any dub package) without dub but 
you have a few manual steps involved.


Kind regards
Andre


Why DMD can't make automatic this few steps involved?


Re: Why I need DUB? Will never DMD don't just use import for import packages?

2021-03-29 Thread Marcone via Digitalmars-d-learn

On Monday, 29 March 2021 at 19:14:41 UTC, Andre Pany wrote:

On Monday, 29 March 2021 at 19:06:33 UTC, Marcone wrote:
Why can't I just use: import vibe.vibe; for import packages 
like Nim or Python? Why I still use DUB?


In python you also have pip.

It is possible to use vibe.d (any dub package) without dub but 
you have a few manual steps involved.


Kind regards
Andre


Python dont need pip for run script with imported module. Just 
need call python.


Re: Why I need DUB? Will never DMD don't just use import for import packages?

2021-03-29 Thread Marcone via Digitalmars-d-learn

On Monday, 29 March 2021 at 19:14:41 UTC, Andre Pany wrote:

On Monday, 29 March 2021 at 19:06:33 UTC, Marcone wrote:
Why can't I just use: import vibe.vibe; for import packages 
like Nim or Python? Why I still use DUB?


In python you also have pip.

It is possible to use vibe.d (any dub package) without dub but 
you have a few manual steps involved.


Kind regards
Andre


I just want compile direct with DMD witout DUB.


Why I need DUB? Will never DMD don't just use import for import packages?

2021-03-29 Thread Marcone via Digitalmars-d-learn
Why can't I just use: import vibe.vibe; for import packages like 
Nim or Python? Why I still use DUB?




Re: How add png image to zip file using std.zip?

2021-02-22 Thread Marcone via Digitalmars-d-learn

On Sunday, 21 February 2021 at 18:10:43 UTC, JN wrote:

On Sunday, 21 February 2021 at 17:17:56 UTC, Marcone wrote:

ZipArchive zip = new ZipArchive();
std.file.write("foo.zip", zip.build());

ArchiveMember f = new ArchiveMember();
f.name = "Wallpaper_001.png";

zip.addMember(f);
std.file.write("foo.zip", zip.build());

File is added with file size 0.
How can I use expandedData for add images files? Or what I use 
for it?


expandedData should hold the contents of the uncompressed file, 
as byte array. So something like:


f.name = "Wallpaper_001.png";
f.expandedData = 
cast(ubyte[])std.file.read("Wallpaper_001.png");


should work. f.name = "Wallpaper_001.png" only says "create a 
file named Wallpaper_001.png inside the zip". It doesn't say 
"put the Wallpaper_001.png file into the zip".


Very good! Work very well. I was trying using rawRead. Now work 
fine.


How add png image to zip file using std.zip?

2021-02-21 Thread Marcone via Digitalmars-d-learn

ZipArchive zip = new ZipArchive();
std.file.write("foo.zip", zip.build());

ArchiveMember f = new ArchiveMember();
f.name = "Wallpaper_001.png";

zip.addMember(f);
std.file.write("foo.zip", zip.build());

File is added with file size 0.
How can I use expandedData for add images files? Or what I use 
for it?


Re: How can I check if template variable parameter is iterable before handle it?

2021-02-21 Thread Marcone via Digitalmars-d-learn

On Sunday, 21 February 2021 at 12:47:46 UTC, Boris Carvajal wrote:

On Sunday, 21 February 2021 at 11:58:11 UTC, Marcone wrote:

import std;

void foo(T)(T bar){
	static if (bar.isiterable()) // Need Somethin to check if bar 
is iterable.

{
// Execute it if bar is iterable.
foreach (i; bar)
{

}
}
else {
// Execute it if bar is NOT iterable.
}

}

void main(){
foo(1);
foo([1, 2, 3, 4, 5]);
}


https://dlang.org/library/std/traits/is_iterable.html

import std.traits : isIterable;

void foo(T)(T bar){
static if (isIterable!T)
{
...


Thank you.

// Function isiterable()
bool isiterable(T)(T arg) nothrow {try {static if 
(isIterable!T){return true;} else {return false;}} 
catch(Throwable){return false;}}


How can I check if template variable parameter is iterable before handle it?

2021-02-21 Thread Marcone via Digitalmars-d-learn

import std;

void foo(T)(T bar){
	static if (bar.isiterable()) // Need Somethin to check if bar is 
iterable.

{
// Execute it if bar is iterable.
foreach (i; bar)
{

}
}
else {
// Execute it if bar is NOT iterable.
}

}

void main(){
foo(1);
foo([1, 2, 3, 4, 5]);
}


My simple internet client made in Dlang.

2021-02-03 Thread Marcone via Digitalmars-d-learn
I study Dlang for just over a year only and have already risked 
creating a program even with a graphical interface and distribute 
it on the internet. Here is a part of that program, just the code 
without a graphical interface. It is a program for modifying http 
headers. You connect your program to the local port of this 
script, this script plays the role of a server to receive your 
program. Receive the HTTP request from the program, connect to 
the remote server playing a client role, modify the HTTP request 
from the program and connect to the remote server.



I would like the completely relevant opinion of you my programmer 
friends in Dlang if my code is good or if it is very noob.


My Code: 
https://github.com/cerejavermelha/Dlang-Client-Server-Socket-Dropbear-Injector/blob/master/Dlang_Client_Server_Socket_Dropbear_Injector.d


Re: How do I get the output of the time bash command?

2021-01-27 Thread Marcone via Digitalmars-d-learn

On Wednesday, 27 January 2021 at 09:35:21 UTC, Anthony wrote:


I'm trying to read the timed output of a pipeShell command but 
it only results in empty output.


Does anyone know why this is?


```
auto p = pipeShell("time ls");

foreach(str; p.stdout.byLine) {
writefln("%s",str);
}
```


writeln(executeShell("time ls")[1]);


Re: How can I create a Standalone Bundle Portable file application using Dlang?

2021-01-24 Thread Marcone via Digitalmars-d-learn

On Saturday, 23 January 2021 at 21:26:28 UTC, James Blachly wrote:

On 1/20/21 6:50 AM, Marcone wrote:

On Tuesday, 19 January 2021 at 14:20:06 UTC, Imperatorn wrote:

On Tuesday, 19 January 2021 at 11:10:25 UTC, Marcone wrote:
On Tuesday, 19 January 2021 at 06:25:31 UTC, Imperatorn 
wrote:

On Monday, 18 January 2021 at 19:42:22 UTC, Marcone wrote:
How can I create a Standalone Bundle Portable file 
application using Dlang?


Could you describe what you mean with "Bundle portable file 
application"?


All dependencies inside an exe file. Like Python Pyinstaller.


Do you with "dependencies" mean "resources"? In that case, 
yeah import is an option someone mentioned.


I do not mean resources .res, except if is possible use files 
inside resources without copy to hard disc and make accessible 
as it is in local path.


I am afraid we are not speaking the same language.

Because it sounds like you may not be using "dependencies" as 
it is conventionally understood in most programming 
communities, you'll need to give examples.


For the record, dependencies are typically either compile-time 
dependencies or run-time dependencies, and in both cases I 
think the commonest example would be a library.


Qt5 dlls


Re: How can I create a Standalone Bundle Portable file application using Dlang?

2021-01-24 Thread Marcone via Digitalmars-d-learn

On Sunday, 24 January 2021 at 02:34:15 UTC, Jack wrote:

On Monday, 18 January 2021 at 19:42:22 UTC, Marcone wrote:
How can I create a Standalone Bundle Portable file application 
using Dlang?


What are the dependencies that you would like to merge into 
executable? dlls? resources?


Qt5 Dll's or Tk dlls.


Re: How can I create a Standalone Bundle Portable file application using Dlang?

2021-01-20 Thread Marcone via Digitalmars-d-learn

On Tuesday, 19 January 2021 at 14:20:06 UTC, Imperatorn wrote:

On Tuesday, 19 January 2021 at 11:10:25 UTC, Marcone wrote:

On Tuesday, 19 January 2021 at 06:25:31 UTC, Imperatorn wrote:

On Monday, 18 January 2021 at 19:42:22 UTC, Marcone wrote:
How can I create a Standalone Bundle Portable file 
application using Dlang?


Could you describe what you mean with "Bundle portable file 
application"?


All dependencies inside an exe file. Like Python Pyinstaller.


Do you with "dependencies" mean "resources"? In that case, yeah 
import is an option someone mentioned.


I do not mean resources .res, except if is possible use files 
inside resources without copy to hard disc and make accessible as 
it is in local path.


Re: How can I create a Standalone Bundle Portable file application using Dlang?

2021-01-19 Thread Marcone via Digitalmars-d-learn

On Tuesday, 19 January 2021 at 06:25:31 UTC, Imperatorn wrote:

On Monday, 18 January 2021 at 19:42:22 UTC, Marcone wrote:
How can I create a Standalone Bundle Portable file application 
using Dlang?


Could you describe what you mean with "Bundle portable file 
application"?


All dependencies inside an exe file. Like Python Pyinstaller.


How can I create a Standalone Bundle Portable file application using Dlang?

2021-01-18 Thread Marcone via Digitalmars-d-learn
How can I create a Standalone Bundle Portable file application 
using Dlang?


How define accepted types in a template parameter?

2021-01-16 Thread Marcone via Digitalmars-d-learn
For example, I want my function template to only accept integer 
or string;


Why many programmers don't like GC?

2021-01-13 Thread Marcone via Digitalmars-d-learn
I've always heard programmers complain about Garbage Collector 
GC. But I never understood why they complain. What's bad about GC?


Why D functions paramter can not implicit infer type of Variant?

2021-01-13 Thread Marcone via Digitalmars-d-learn

import std;

void a(int b){
}

void main()
{
  Variant c = 10;
  a(c); // Error
}

Need more sugar.


How build DCD on Windows?

2021-01-11 Thread Marcone via Digitalmars-d-learn
Hi, Someone can Help me build exe dcd server and client on 
WIndows? Step by step? Becouse the informations disponible is 
very hard to undestand.


Re: How can I directly reffer literal element itself inside [] slice?

2021-01-11 Thread Marcone via Digitalmars-d-learn

On Monday, 11 January 2021 at 21:01:57 UTC, Paul Backus wrote:

On Monday, 11 January 2021 at 15:45:51 UTC, Marcone wrote:


I can reffer length of literal string using $.

"Hello World"[0..$]

But I want make like it witout use variable name.

"Hello World"[0..?.indexOf("o")]


The exact syntax you want is impossible. The closest you can 
get is to use an `enum` constant, which is essentially a named 
literal:


enum hello = "Hello World";
writeln(hello[0 .. hello.countUntil("o")]); // "Hell"


I don't want use enum, I want use literal.


Re: How can I directly reffer literal element itself inside [] slice?

2021-01-11 Thread Marcone via Digitalmars-d-learn

On Monday, 11 January 2021 at 16:41:03 UTC, oddp wrote:

On 11.01.21 16:45, Marcone via Digitalmars-d-learn wrote:

"Hello World"[0..?.indexOf("o")]


Does until [1] do the trick?

"Hello World".until("o") // => "Hell"

[1] https://dlang.org/library/std/algorithm/searching/until.html


I want more support inside slice []


How can I directly reffer literal element itself inside [] slice?

2021-01-11 Thread Marcone via Digitalmars-d-learn



I can reffer length of literal string using $.

"Hello World"[0..$]

But I want make like it witout use variable name.

"Hello World"[0..?.indexOf("o")]


Re: How can I directly reffer literal element itself inside [] slice?

2021-01-11 Thread Marcone via Digitalmars-d-learn

I am using it:


// Tipo Nulo.
class None {}

// Função slice()
auto slice(T1, T2, T3 = None)(T1 conteudo, T2 inicio, T3 fim = 
T3.init) {

int start, end, startlen;
	static if (is(T2 == int)) {inicio = inicio < 0 ? conteudo.length 
+ inicio : inicio;}
	static if (is(T3 == int)) {fim = fim <= 0 ? conteudo.length + 
fim : fim;}
	static if (is(T2 == int)) {start = inicio;} else static if 
(is(T2 == string)){start = conteudo.countUntil(inicio);}
	static if (is(T2 == string)) {static if (is(T1 == 
string)){startlen = start + inicio.length + 1;} else {startlen = 
start + 1;}}
	static if (is(T3 == int)) {end = fim;} else static if (is(T3 == 
string)){end = startlen + conteudo[startlen..$].countUntil(fim);}
	static if (is(T3 == None)) {return conteudo[start];} else 
{return conteudo[start..end];}

}


How can I use file from resource .res without copy it to hard disc?

2021-01-11 Thread Marcone via Digitalmars-d-learn
I want use file direct from resource .res without copy it to hard 
disc. How can I make it?


Parameter with indetermined tuple elements type?

2021-01-11 Thread Marcone via Digitalmars-d-learn
I want to create a function that receive a tuple (need be a 
tuple) with indetermined length and indetermined elements type 
without template. The argument need be a tuple, but length and 
elements types indetermineds. How can I make it?


Re: Can alias compose! receive more than one argument?

2021-01-07 Thread Marcone via Digitalmars-d-learn

My mistake:

alias a = compose!((x,y) => x*y);


Can alias compose! receive more than one argument?

2021-01-07 Thread Marcone via Digitalmars-d-learn

I get this eror:


Example:

alias a = compose!(x,y => x*y);

writeln(a(2,5));

// Error: onlineapp.d(4): Error: undefined identifier x


Re: DConf talk : Exceptions will disappear in the future?

2021-01-05 Thread Marcone via Digitalmars-d-learn

Bye bye nothrow functions in Dlang.


What is the difference between "delegate()" and "lazy delegate()" ?

2021-01-02 Thread Marcone via Digitalmars-d-learn

Why "lazy delegate()" need two parentheses to execute function?


Why there is no support for Dlang to convert Qt Creator .ui file to Dlang .d for use with QtE5?

2021-01-01 Thread Marcone via Digitalmars-d-learn
I have a GUI created using Qt Creator and save it to .ui file. I 
can convert .ui file to .cpp or .py (C++ or Python), but I can 
not convert .ui to .d for use with Dlang and QtE5.


Re: UFCS functions with both pointers and refs

2020-12-18 Thread Marcone via Digitalmars-d-learn
Two differents types; Foo type and pointer type. Need function 
overload foe each or just use ref and avoid pointer.





CMD && comand not work

2020-12-10 Thread Marcone via Digitalmars-d-learn
In this very generic example && not work to finalize the instruct 
and start a new instruct. Yes, I know dmd can build and run 
without it, but this is only a example.


execute(["cmd", "/c", "dmd test.d", "&&", "start test.exe"]);

How can I substitute && ?


Re: My first application in Dlang

2020-12-02 Thread Marcone via Digitalmars-d-learn

On Thursday, 3 December 2020 at 02:44:40 UTC, Ali Çehreli wrote:

On 12/2/20 5:46 PM, Marcone wrote:
Hello, my name is Marcone, I live in Brazil, and I have been 
studying Dlang for a year. I finished my first application in 
Dlang with a graphical interface in Win32api and made it 
available on the internet for anyone who wants to download it. 
Here is the program link. As a beginner in the D programming 
language, I would like a note from you who have been D 
programmers for a long time if I am doing well. What did you 
think about the application?


Link of my First Aplication created with Dlang and Win32api : 
https://sourceforge.net/projects/direct-http-tunnel/


Thank you.


Cool. :)

But did you want to share your *source* code? All I see there 
is a .exe, which I would not start due to risk of viruses (of 
course unknown to you).


Ali


Hi, are you Ali Çehreli author of Programming in D book? I 
learned Dlang by reading this book on my Kindle. If I published 
my source code you wouldn't understand. I created a module with 
functions so useful, that using UFCS if it weren't for the keys 
delimiting the blocks, anyone would think they're reading a 
Python code.


My first application in Dlang

2020-12-02 Thread Marcone via Digitalmars-d-learn
Hello, my name is Marcone, I live in Brazil, and I have been 
studying Dlang for a year. I finished my first application in 
Dlang with a graphical interface in Win32api and made it 
available on the internet for anyone who wants to download it. 
Here is the program link. As a beginner in the D programming 
language, I would like a note from you who have been D 
programmers for a long time if I am doing well. What did you 
think about the application?


Link of my First Aplication created with Dlang and Win32api : 
https://sourceforge.net/projects/direct-http-tunnel/


Thank you.


Re: How make Optional pre determined parameter type without overload function?

2020-12-02 Thread Marcone via Digitalmars-d-learn

Now my slice works fine.


// Tipo Nulo.
class None {}

// Função slice()
auto slice(T1, T2, T3 = None)(T1 conteudo, T2 inicio, T3 fim = 
T3.init) {

int start, end, startlen;
	static if (is(T2 == int)) {inicio = inicio < 0 ? conteudo.length 
+ inicio : inicio;}
	static if (is(T3 == int)) {fim = fim <= 0 ? conteudo.length + 
fim : fim;}
	static if (is(T2 == int)) {start = inicio;} else static if 
(is(T2 == string)){start = conteudo.countUntil(inicio);}
	static if (is(T2 == string)) {static if (is(T1 == 
string)){startlen = start + inicio.length + 1;} else {startlen = 
start + 1;}}
	static if (is(T3 == int)) {end = fim;} else static if (is(T3 == 
string)){end = startlen + conteudo[startlen..$].countUntil(fim);}
	static if (is(T3 == None)) {return conteudo[start];} else 
{return conteudo[start..end];}

}



Re: How make Optional pre determined parameter type without overload function?

2020-11-28 Thread Marcone via Digitalmars-d-learn

On Sunday, 29 November 2020 at 02:55:02 UTC, Ali Çehreli wrote:

On 11/28/20 6:40 PM, Marcone wrote:

void a(T1, T2)(T1 b, T2 c){
 // I need parameter "c" optional, but only (String or 
int). How can I make it without overload function?

}


Since it's optional, T2 must have a default type. I made it 
'int' below.


void a(T1, T2 = int)(T1 b, T2 c = T2.init)
if (is (T2 == string) ||
is (T2 == int))
{
  // ...
}

void main() {
  a(1.5);
  a(2.5, "hello");
  a(3.5, 42);
  static assert(!__traits(compiles, a(4.5, 5.5)));
}


Thank you! work fine!


How make Optional pre determined parameter type without overload function?

2020-11-28 Thread Marcone via Digitalmars-d-learn

void a(T1, T2)(T1 b, T2 c){
	// I need parameter "c" optional, but only (String or int). How 
can I make it without overload function?

}


Re: How can I convert Hexadecimal to RGB Color and vice-versa?

2020-11-23 Thread Marcone via Digitalmars-d-learn

// Função hex2rgb()
uint hex2rgb(string hexcolor) nothrow {
try {
uint value;
hexcolor.stripLeft("#").formattedRead!"%x"(value);
return value;
} catch(Throwable){return 0;}
}


// Função rgb2hex()
string rgb2hex(uint rgbcolor) nothrow {
try {
return "#%s".format(toHex(cast(const(BigInt)) rgbcolor));
} catch(Throwable){return "";}
}


How Performance down slow it is using UFCS friendly function?

2020-11-20 Thread Marcone via Digitalmars-d-learn

// Função receive()
char[] receive(Socket socket, int size = 8192) nothrow {
try {
char[] buffer;
buffer.length = size;
int rq = socket.receive(buffer);
return buffer[0..rq];
} catch(Throwable){return null;}
}


s = new Socket(AddressFamily.INET, SocketType.STREAM);
writeln(s.receive(8192)); // How slow is using as friendly 
function?


Re: Function Pointer Not Working

2020-11-19 Thread Marcone via Digitalmars-d-learn

I will wait with this code.
WaitForSingleObject(threading, INFINITE);


Re: Function Pointer Not Working

2020-11-19 Thread Marcone via Digitalmars-d-learn

On Thursday, 19 November 2020 at 15:51:09 UTC, Kagamin wrote:
The delegate is stored on the stack of the calling thread, the 
created thread loads it from there, but the calling thread 
doesn't wait for that and clobbers the stack right away. If you 
were lucky your code would crash.


The thread that I do wait ultil function is finished. Using a 
while with 3 seconds to verify if thread id is in running list, 
and break if not finishing owner thread.


Re: Function Pointer Not Working

2020-11-19 Thread Marcone via Digitalmars-d-learn

Solved replacing this line:

CreateThread(null, 0, &_fun, , 0, null);

to this code:
task!({CreateThread(null, 0, &_fun, , 0, 
null);}).executeInNewThread();


Function Pointer Not Working

2020-11-18 Thread Marcone via Digitalmars-d-learn

// Function threadingw()
void threadingw(HWND hwn, void delegate() fun) nothrow {
try {
// Function _fun()
extern(Windows)
uint _fun(void * arg){
			(*(cast(void delegate()*) arg))(); // Do not show "Hello 
World!" :(

return 0;
}
CreateThread(null, 0, &_fun, , 0, null);
} catch(Throwable){}
}

void main(){
null.threadingw({writeln("Hello World!");});

}


Why can not use tray/catch inside finally block?

2020-11-16 Thread Marcone via Digitalmars-d-learn
Some operations in finally block may throw and can not be used 
inside nothrow functon. Why can not use tray/catch inside finally 
block?


  1   2   3   >